Git常见操作命令大全,程序员必备技能

2024-06-15 11:24:03 浏览数 (2)

基础操作

1、创建ssh key,邮箱可以随便输入,不会做校验

代码语言:shell复制
ssh-keygen -t rsa -C "你的邮箱地址"

2、配置Git账号信息,你所有的Git操作记录,都会显示为你设置的昵称。

代码语言:shell复制
# 不添加`--global`表示在当前目录下的Git仓库设置,添加表示全局设置。
git config --global user.name "你的Git提交昵称"

# 邮箱可以随便输入,不会做校验,但推荐填写你在代码托管平台对应的账号邮箱,
# 这样能够统计你的提交记录
git config --global user.email "你的Git提交邮箱"

仓库管理

1、初始化Git仓库

代码语言:shell复制
git init

2、往仓库中添加文件

代码语言:shell复制
# 添加所有文件
git add . 
# 添加指定文件到
git add 文件 

3、设置提交信息

代码语言:shll复制
git commit -m "提交信息"

4、本地仓库设置一个远程仓库地址

代码语言:shell复制
git remote add 远程仓库名(一般直接是origin) 远程仓库地址

5、本地仓库追加一个远程仓库地址

代码语言:shell复制
# 该方式在执行git push时会自动同步所有远程仓库
git remote set-url --add 远程仓库名 (一般直接是origin) 远程仓库地址

# 该方式在执行git push时,需要指定具体的远程仓库名
git remote add 远程仓库名(不能重复) 远程仓库地址

6、克隆仓库

代码语言:shell复制
git clone 远程仓库地址

记录操作

1、查看提交记录

代码语言:shell复制
git log

2、查看git文件状态

代码语言:shell复制
git status

3、图形化显示提交记录

代码语言:shell复制
# 图形化显示当前分支的提交日志
git log --graph --oneline

# 图形化显示当前分支的提交日志及每次提交的变更内容
git log --graph --patch

# 图形化显示所有分支的提交日志
git log --graph --oneline --all

# 图形化显示所有分支的提交日志及每次提交的变更内容
git log --graph --patch --all

4、显示提交信息

代码语言:shell复制
git show 提交hash值

git show 分支名

git show tag名

5、移除当前修改

代码语言:shell复制
# 抛弃指定文件的修改
git checkout -- [file1] [file2]
# 2.23版本开始,推荐使用如下命令
git restore [file1] [file2]

# 抛弃所有文件的修改
git reset --hard
# 2.23版本开始,推荐使用如下命令
git restore .

6、暂存区操作

代码语言:shell复制
# 将当前修改添加到暂存区
git stash

# 查看暂存区列表
git stash list

# 恢复暂存区最近的记录
git stash apply

# 恢复暂存区指定记录
git stash apply stash@{n}

# 暂存区申请使用时,出现冲突,将冲突解决后的信息同步到暂存区
git stash apply --index

# 删除指定暂存区
git stash drop stash@{0}

# 恢复并删除最近一次暂存区
git stash pop

文件操作

1、重名名文件

代码语言:shell复制
git mv 原文件名 新文件名

2、移动文件

代码语言:shell复制
git mv 原文件路径 新文件路径

3、移动目录

代码语言:shell复制
git mv 原目录 新目录

git mv 可以添加参数--dry-run表示预览效果,而不是执行命令。推荐在使用Git来操作文件或者目录,而不是使用shell命令,这样可以保证在Git中的完整记录,也方便追溯、回退。

版本操作

1、查看标签

代码语言:shell复制
# 查看所有标签
git tag

# 指定查找模式
git tag -l "匹配模式"

2、查看标签信息

代码语言:shell复制
git show 标签名

3、创建标签

代码语言:shell复制
# 创建轻量级标签
git tag 标签名

# 创建带有记录信息标签
git tag -a 标签名 -m "标签信息"

4、删除标签

代码语言:shell复制
git tag -d 标签名

5、推送标签

代码语言:shell复制
# 推送所有标签
git push origin --tags

# 推送所有标签
git push origin 标签名

分支操作

1、查看本地分支

代码语言:shell复制
git branch

2、查看所有分支

代码语言:shell复制
git branch -a

会显示本地和远程分支。

3、查看远程分支

代码语言:shell复制
git branch -r

4、查看某个分支的提交历史

代码语言:shell复制
git log [branch-name]

5、创建新分支

代码语言:shell复制
git branch [new-branch-name]

仅仅是基于当前分支创建新分支,不会切换到新分支。

6、创建并切换到新分支

代码语言:shell复制
git checkout -b [new-branch-name]

7、切换到现有分支

代码语言:shell复制
git checkout [branch-name]

8、删除本地分支

代码语言:shell复制
git branch -d [branch-name]

这将删除本地分支,只有在该分支已经完全合并的情况下才能成功。

9、强制删除本地分支

代码语言:shell复制
git branch -D [branch-name]

强制删除指定的本地分支,不管是否已经合并。

10、重命名分支

代码语言:shell复制
git branch -m [old-branch-name] [new-branch-name]

11、设置跟踪分支、更新远程分支的本地引用

代码语言:shell复制
git branch --set-upstream-to [remote-branch]

12、查看分支的上游(tracking)分支

代码语言:shell复制
git branch -vv

13、合并分支

代码语言:shell复制
git merge [branch-name]

14、解决合并冲突

代码语言:shell复制
# 第一步需要手动解决冲突

# 第一步将解决冲突后的文件添加到缓存区
git add .

15、删除远程分支

代码语言:shell复制
git push 远程仓库名 --delete [branch-name]

16、拉取远程分支并删除本地分支

代码语言:shell复制
git fetch 远程仓库名 and git branch -r 
| grep -v '->' | grep [branch-name] | cut -c 3- | xargs -n 1 git branch -d

17、比较两个分支的差异

代码语言:shell复制
git diff [branch1] [branch2]

18、列出某个分支的提交记录

代码语言:shell复制
git log [branch-name]

19、重置当前分支到特定 commit

代码语言:shell复制
git reset --hard [commit-hash]

保留当前更改

20、重置当前分支到特定 commit

代码语言:shell复制
git reset --soft [commit-hash]

不保留当前更改

21、推送本地分支到远程仓库

代码语言:shell复制
git push [remote-name] [branch-name]

22、推送本地分支并设置为远程跟踪分支

代码语言:shell复制
git push [remote-name] [branch-name]:[remote-branch-name]

23、拉取远程分支并自动创建本地分支

代码语言:shell复制
git pull [remote-name] [branch-name]

24、拉取远程分支并合并到当前分支

代码语言:shell复制
git pull [remote-name] [branch-name]

25、查看分支合并图

代码语言:shell复制
git log --graph --decorate --oneline --all

我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!

0 人点赞