Git介绍与使用

news/2024/5/17 19:46:01 标签: git, svn, gitee, github

Git介绍与常用命令的使用

目录:
一、Git简介
二、Git简单命令行入门
三、Git常用命令
四、常见问题补充

一、git-scm.com/about" rel="nofollow">Git简介

Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性。

Git基本概念
分类介绍
工作区仓库的目录。工作区是独立于各个分支的。
暂存区数据暂时存放的区域,类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。
版本库存放所有已经提交到本地仓库的代码版本
版本结构树结构,树中每个节点代表一个代码版本。

二、Git简单命令行入门

一键将本地文件推送到远程,使用命令+介绍

命令初始化一个新的 Git 仓库

git init

通过 git remote add 命令将远程仓库连接到您的本地仓库。

git remote add origin <远程仓库URL>

使用 git pull 命令拉取远程更新。

git pull origin master

将所有待加入暂存区的文件加入暂存区

git add .

“xxx给自己看的备注信息”:将暂存区的内容提交到当前分支

git commit -m "xxx"

推送到远程仓库(第一次提交加-u,标志用于与远程分支建立关联)

git push -u origin master

推送到远程仓库

git push

三、Git常用命令

编号命令解释
1git config --global user.name xxx设置全局用户名,信息记录在~/.gitconfig文件中
2git config --global user.email xxx@xxx.com设置全局邮箱地址,信息记录在~/.gitconfig文件中
3git init将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中
4git add XX将XX文件添加到暂存区
5git add .将所有待加入暂存区的文件加入暂存区
6git rm --cached XX将文件从仓库索引目录中删掉
7git commit -m “给自己看的备注信息”将暂存区的内容提交到当前分支
8git status查看仓库状态
9git diff XX查看XX文件相对于暂存区修改了哪些内容
10git log查看当前分支的所有版本
11git reflog查看HEAD指针的移动历史(包括被回滚的版本)
12git reset --hard HEAD^ 或 git reset --hard HEAD~将代码库回滚到上一个版本
13git reset --hard HEAD^^往上回滚两次,以此类推
14git reset --hard HEAD~100往上回滚100个版本
15git reset --hard 版本号回滚到某一特定版本
16git checkout — XX或git restore XX将XX文件尚未加入暂存区的修改全部撤销
17git remote add origin <远程Git仓库地址>将本地仓库关联到远程仓库
18git push -u (第一次需要-u,以后不需要)将当前分支推送到远程仓库
19git push origin branch_name将本地的某个分支推送到远程仓库
20git clone <远程Git仓库地址>将远程仓库XXX下载到当前目录下
21git checkout -b branch_name创建并切换到branch_name这个分支
22git branch查看所有分支和当前所处分支
23git checkout branch_name切换到branch_name这个分支
24git merge branch_name将分支branch_name合并到当前分支上
25git branch -d branch_name删除本地仓库的branch_name分支
26git branch branch_name创建新分支
27git push --set-upstream origin branch_name设置本地的branch_name分支对应远程仓库的branch_name分支
28git push -d origin branch_name删除远程仓库的branch_name分支
29git pull将远程仓库的当前分支与本地仓库的当前分支合并
30git pull origin branch_name将远程仓库的branch_name分支与本地仓库的当前分支合并
31git branch --set-upstream-to=origin/branch_name1 branch_name2将远程的branch_name1分支与本地的branch_name2分支对应
32git checkout -t origin/branch_name将远程的branch_name分支拉取到本地
33git stash将工作区和暂存区中尚未提交的修改存入栈中
34git stash apply将栈顶存储的修改恢复到当前分支,但不删除栈顶元素
35git stash drop删除栈顶存储的修改
36git stash pop将栈顶存储的修改恢复到当前分支,同时删除栈顶元素
37git stash list查看栈中所有元素

四、常见问题补充

1、缺乏Git练习?

来玩Git小游戏 Learn Git Branching

2、Git 与 SVN 共同点与区别?

共同点:

  1. 版本控制系统: SVN 和 Git 都是版本控制系统,允许开发人员跟踪文件的变化、回溯到不同的版本、合并多个开发者的工作等。
  2. 协作开发: 两者都允许多个开发者协同工作在同一个项目上,管理代码的更改和集成新功能。

区别:

  1. 分布式 vs. 集中式:
  • Git 是分布式版本控制系统,每个开发者都有一个完整的本地存储库副本,可以独立地工作、提交更改和合并。
  • SVN 是集中式版本控制系统,所有代码存储在一个中央服务器上,开发者需要与服务器进行交互来获取最新代码或提交更改。
  1. 工作方式:
  • Git 通过将每个版本作为文件系统快照来管理文件的变化。每次提交时,Git 会创建一个新的快照,包含项目当前状态的副本。
  • SVN 以文件为基础,跟踪每个文件的每个版本的变化。
  1. 分支和合并:
  • Git 的分支和合并非常快速和高效,因为它在本地存储库中保存了完整的历史记录,并且分支操作仅涉及指向不同提交的指针移动。
  • SVN 的分支和合并相对复杂,涉及创建复制版本,因为它是集中式系统,没有本地完整历史记录。
  1. 性能和效率:
  • Git 在处理大型项目和分支时通常更快、更高效,因为大部分操作都在本地完成。
  • SVN 在大型项目和分支方面可能会变慢,特别是在集中式存储库上。
3、官方等相关链接?

Git下载:https://git-scm.com/download
SVN 官网:https://subversion.apache.org
Github SVN 源码:https://github.com/apache/subversion


http://www.niftyadmin.cn/n/5389971.html

相关文章

Qt应用软件【协议篇】websocket的介绍和代码示例

WebSocket简介 WebSocket是一种网络通信协议,它使得浏览器(客户端)和服务器之间的通信变得更加高效和实时。这种技术特别适用于需要快速、双向交换数据的应用,比如实时聊天应用、在线游戏、实时股票交易平台等。WebSocket协议在2011年被标准化(RFC 6455),它旨在通过一个…

爬虫知识--03

数据存mysql import requests from bs4 import BeautifulSoup import pymysql# 链接数据库pymysql conn pymysql.connect(userroot,password"JIAJIA",host127.0.0.1,databasecnblogs,port3306, ) cursor conn.cursor() cursor conn.cursor()# 爬数据 res request…

二十五、二维直方图

项目功能实现&#xff1a;对一张彩色图像进行二维直方图绘制 二维直方图通常在HSV色域空间进行处理 按照之前的博文结构来&#xff0c;这里就不在赘述了 一、头文件 histogram_2d.h #pragma once#include<opencv2/opencv.hpp>using namespace cv;class HISTOGRAM2D { …

【JavaScript】使用浏览器提供的 API

文章目录 1. Geolocation API1.1 获取用户当前位置 2. Canvas API2.1 绘制基本图形2.2 绘制图像 3. Web Audio API3.1 播放音频3.2 音频可视化 4. 总结 JavaScript 作为一门强大的脚本语言&#xff0c;可以通过浏览器提供的各种 API&#xff0c;实现丰富的交互和媒体处理功能。…

【力扣hot100】刷题笔记Day12

前言 小涛啊小涛&#xff0c;你不能就这么荒废学习安逸享乐&#xff01;工作找不到啦&#xff01; 104. 二叉树的最大深度 - 力扣&#xff08;LeetCode&#xff09; 递归 class Solution:def maxDepth(self, root: Optional[TreeNode]) -> int:if not root:return 0l_len …

校招面试Java、springboot、mysql基本问题

这里有一些常见的Java、Spring Boot和MySQL面试问题&#xff1a; Java面试问题&#xff1a; Java中的基本数据类型有哪些&#xff1f;什么是Java中的自动装箱和拆箱&#xff1f;什么是面向对象编程&#xff1f;Java中的面向对象编程有哪些特性&#xff1f;Java中的异常处理机…

Devc++ 开发的 Easyx 瓦片地图编辑器之自定义贴图导入模块

接上次开发 Editing While Playing 使用 Easyx 开发的 RPG 地图编辑器 tilemap eaitor-CSDN博客 由于还不能导入自己绘制的贴图&#xff0c;所以还要增加自定义贴图的导入导出模块 这里就单独搓了一个自定义导入导出部分&#xff0c;之后再缝合进瓦片地图编辑器里 #include &…

红队评估四靶场

文章目录 环境搭建1.设置所需网卡2.更改win7设置3.DC设置4.web设置开启docker服务5.kali网段`渗透启动`1.确认对方靶机的IP地址2.端口探测3.web探测`2001端口``2002端口`Tomcat/8.5.19漏洞复现`2003端口`4.docker逃逸5.ssh密钥爆破`域渗透启动`1.提权2.隧道搭建各项配置文件内容…