Git实用命令集合

一、基础

git clone 克隆远程分支

git clone http://192.168.0.45/spade2/spade.git 拉取远程分支在spade目录

git clone http://192.168.0.45/spade2/spade.git spadeV2 拉取远程分支在spadeV2目录

git pull 从远程仓库下载更新内容

git add . 添加所有文件到暂存区

git commit -m "feat: bug修改" 提交暂存区中的修改到本地仓库

git commit -am "feat: bug修改" 提交代码到本地仓库

约等同于
git add git commit 命令组合添加到暂存区并提交到本地仓库。但该命令不会提交未进入版本管理的的文件。 未进入版本管理的新文件必须通过 git add 命令添加在暂存区才能提交。

git push 约等于推送当前本地分支到远程分支

以上大概能处理到一个简单的拉取、修改、提交本地仓库、推送远程的流程。

二、撤销本地代码修改

1、还未将变更加入到暂存区,即未执行 git add 命令前,可以使用 git checkout 命令来撤销修改,命令如下

git checkout -- <file>

比如:

git checkout -- *.txt

git checkout -- a.txt

也可使用

git checkout . 撤销所有文件修改

2、已将变更加入到暂存区,即已经执行了 git add 命令,可以使用 git reset HEAD 命令先从暂存区中移除文件,命令如下:
git reset HEAD <file>

比如

git reset HEAD rainbow.txt start.txt 从暂存区中移除 rainbow.txt start.txt等文件

git reset HEAD * 从暂存区中移除所有文件

git reset HEAD *.txt 从暂存区中移除所有txt格式文件

后续就可以使用 git checkout 命令撤销修改。

三、分支命令
1、查看分支

git branch 查看本地分支列表

git branch -r 查看远程分支列表

git branch -a 查看本地分支和远程分支

输出 :wq 退出查看模式

2、创建新分支

git checkout -b newB 创建newB分支并切换到该分支

相当于

git branch newB 创建newB分支

git checkout newB 切换到newB分支

3、推送新分支到远程

第一步 git push origin newB 推送本地分支到远程

第二步 git branch -u origin newB 建立本地分支和远程分支关联,也就是跟踪分支

或者

git push -u origin newB 推送本地分支到远程并跟踪分支

4、拉取本地不存在的远程分支

比如远程仓库存在一个分支feature/bugfix1,本地仓库不存在该分支,但需要拉取该分支到本地仓库修改,则可执行
git checkout -b 本地分支名x origin/远程分支名x

5、切换分支

git checkout rng 切换到本地rng分支

如果要切换到某个git提交节点可执行

git checkout commitId commitId为git提交节点ID

6、合并分支

git merge branchName 把branchName分支合并到当前分支,比如当前分支在rng分支,则代表把branchName分支合并到rng分支

如果在合并过程中碰到冲突,想取消合并,则可执行

git merge --abort

如果合并成功,但想撤销合并,则可先切到主分支,然后执行

git revert -m 1 commitId

四、贮藏

贮藏是一个非常实用的操作,比如我们在分支A修改了很多代码文件,然后来一个紧急任务需要去分支B修改,如果没有用贮藏,那么切换到分支B的前提,是在分支A把之前的修改内容提交或者丢弃,但这两种情况可能都不是我们想要的。 我们想要的是保留A分支的修改同时也不用提交到A分支。这时候我们就可以把A分支的修改内容贮藏起来,既可以保留修改也不用提交修改到分支中。

比如现在在A分支执行

git stash 则该命令会把所有的在A分支的修改内容添加到贮藏,同时A分支的修改也被撤销,这时候就可以安全的切换到

B分支。

在B分支处理完工作后,想继续回到A分支处理之前的修改,则可以切换到A分支执行

git stash apply 把贮藏区的修改应用到A分支

这时候贮藏可以丢弃

git stash drop

也行执行

git stash pop 直接应用贮藏并立刻从贮藏栈上丢弃它,相当执行了 git stash apply git stash drop

假如很多分支都贮藏过修改,那么贮藏区中就不止有一份贮藏,执行

git stash list 则可查看有哪些贮藏

$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log

贮藏是以栈的形式保存的

git stash apply 默认使用最近的贮藏信息,相当于 git stash apply stash@{0}

git stash drop 同理相当于 git stash drop stash@{0}

也可以使用其他贮藏,如 git stash apply stash@{2}

五、回滚、重置、撤销等
1、撤销某次提交

git revert commitId

2、重置分支到某个提交节点

git reset --hard commitId 强制回滚到此次提交

git push --force 或者 git push -f 强制push

强制合并 git reset --hard commitId

混合合并 git reset --mixed commitId

软合并 git reset --soft commitId

以上三种合并方式的区别可参考SourceTree的软合并、混合合并、强合并区别_souttree-CSDN博客s

git reset 默认模式是混合合并

git reset HEAD * 回退到当前版本并把暂存区的中文件退回到工作区中,后续可用 git checkout 命令撤销修改

git reset HEAD~1 回退到前一个版本

git reset HEAD~n 回退到前n个版本

git reset commitId 回退到指定版本

注:HEAD 代表当前当前版本指针,同理于当前版本的commitId

六、标签(tag)

git tag -a v2 -m "tag msg" 创建一个名称为v2的tag,并备注tag信息

简化命令
git tag v2

git tag -a v2 commitId 基于某个提交点创建tag

git push origin v2 推送tag到远程服务器

git push origin --tags 推送本地所有tag到远程服务器

git checkout -b [branchname] [tagname] 基于tag创建分支

七、git相关信息查看
1、查看当前仓库

git remote show origin

git remote -v

2、查看文件状态(哪些文件修改或者暂存了)

git status

git status -s 简单格式输出文件状态

git diff 查看未暂存的文件修改

git diff --staged 查看已暂存的文件修改

3、查看日志

git log -p -2 产看最近两次提交差异

git log --pretty=oneline 查看提交记录

git reflog 查看本地引用日志

相关推荐
high20114 小时前
【Git】-- 版本说明
git
kaixin_learn_qt_ing5 小时前
git clone
git
sin22015 小时前
git stash
git
喝鸡汤5 小时前
一起学Git【第二节:创建版本库】
git
慢慢成长的码农5 小时前
git 同步分支操作
git
sin22015 小时前
git推送本地仓库到远程(Gitee)
git·gitee
丁总学Java6 小时前
git branch -r(--remotes )显示你本地仓库知道的所有 远程分支 的列表
git
yylの博客9 小时前
Windows通过git-bash安装zsh
windows·git·bash·zsh
丁总学Java10 小时前
(Z Shell)zsh: no matches found: ? 使用单引号包裹
git·zsh
萌狼蓝天10 小时前
【NAS】绿联NAS+极狐Gitlab+1Panel
git