一、Git常用命令
// 显示当分支的状态。它会列出已修改、已暂存和未跟踪的文件
git status
// 列出本地仓库中所有的分支,其中会特殊显示当前所在分支
git branch
// 在当前分支的基础上创建一个新的分支,并切换到这个新的分支上
git checkout -b 新分支名
例如:git checkout -b master-02
// 删除指定分支
git branch -d 分支名
例如:git branch -d master-02
// 切换分支
git checkout 分支名
例如:git checkout master-01
// 添加指定文件到暂存
git add 添加的文件
例如:git add main.go
// 将所有更改的文件添加到暂存
git add.
// 放弃指定文件修改【还原指定文件修改】
git restore 指定文件
例如:git restore main.go
// 储藏当前分支的更改文件【不包含未跟踪的文件】
git stash -m "储藏描述"
// 查看所有的存储记录
git stash list
// 弹出指定分支 后面跟的idx可以通过 git stash list 查到
git stash pop idx
例如:git stash pop 0
// 从远程仓库拉取最新的更改并合并到本地仓库的命令
git pull
// 使用`git commit`命令提交暂存区的修改到本地仓库
git commit -m "这里面填充修改描述"
// 修改提交描述,注意:这个只能本地分支修改最近一次的提交描述
git commit --amend -m "新的提交描述"
// 将修改推送到远程仓库
git push
// 如果远端分支不存在,需要创建分支,并将刚才的提交提上去
git push --set-upstream origin 远端分支名
例如:
git push --set-upstream origin xiaoyin-test
// 指定关联远端分支
git branch --set-upstream-to=origin/<branch> yhq-alpha-01
例如:
git branch --set-upstream-to=origin/yhq-alpha-01 yhq-alpha-01
// 用 git merge 把 bugFix 合并到 当前分支
git merge bugFix
// 查看单条分支的Log
git log --oneline
// 合并多条commit
使用 git rebase -i commitHash 的时候是合并的分支不包含这里填的commit
如果遇到了冲突,解决后使用 git rebase --continue
取消当前的 git rebase 操作 git rebase --abort
如果不需要保留之前的提交记录,就直接 git push -f 强制推到远端分支上面
// 摘取指定commit到当前分支
git cherry-pick commitHash
示例:
git cherry-pick f8602c376b9b6580bff11543b3eae6ce2245f2b9
二、命令配合VS Code 日常使用
1、git status
git status
命令用于显示当前分支的状态。它会列出已修改、已暂存和未跟踪的文件。通常
git status
会显示以下信息:
** 1. 修改过的文件:显示已修改但尚未暂存的文件。
** 2. 暂存文件:显示已暂存但尚未提交的文件。
** 3. 未跟踪文件:显示尚未添加到 Git 仓库的文件。
2、git branch
git branch
是用来查看、创建、删除和重命名分支的命令。- 当使用
git branch
命令时,会列出所有本地分支,并在当前分支前添加一个*
符号Tip:这里仅解释作为查看分支使用
3、git checkout -b 新分支名
这个命令用于创建一个新的分支并切换到该分支上。具体解释如下:
**git checkout
: 表示切换分支的命令
**-b
: 表示创建一个新分支
**新分支名
: 表示新分支的名称因此,执行这个命令将会创建一个名为
新分支名
的新分支,并切换到该分支上,且当前分支的所有文件也会随之一起到新分支。
4、git branch -d 分支名
删除指定的分支,其中
分支名
是删除的分支
5、git checkout 分支名
- git checkout 命令用于切换到指定的分支。
- git checkout 还可以用于切换到指定的提交版本或标签。
Tip:这里仅用作切换分支使用
6、git add
git add 指定文件
:将指定文件添加到暂存的更改git add .
:将所有的文件加入到暂存的更改- 虽然有这些指定,但是个人还是感觉可视化的界面更加的方便,直接在VSCode的界面中点击可视化的东西可以实现的,感觉这里没必要这么操作
7、git restore
- 放弃指定文件修改【还原指定文件修改】
- git restore 指定文件
- 例如:git restore main.go
8、git stash
- 关于这类命令可以理解为
将当前分支未提交的东西进行备份,在需要的时候拿出来
- 储藏当前分支的更改文件【不包含未跟踪的文件】
git stash -m “储藏描述”- 储藏当前分支的更改文件【包含未跟踪的文件】
git stash -u -m “储藏描述”- 查看所有的存储记录
git stash list- 弹出指定分支 后面跟的idx可以通过 git stash list 查到
git stash pop idx
例如:git stash pop 0
除了上面的命令操作,本人也习惯结合 VS Code 一起使用,下面就是操作流程
例如我这里演示一个弹出储藏【鼠标点击要弹出的即可弹出指定储藏】
9、git pull
这个命令一般是多人开发或者多台机器上用到了同一仓库的代码的时候才会用到,自己一个人的时候一般是用不到的
在使用这个命令的时候建议先将自己的本地的修改储藏起来,然后在拉取远端的
当远端的数据拉取完了,再将刚才自己储藏的内容弹出,看看是否有冲突,如果有冲突就给解决一下
总结:
储藏本地分支修改(git stash …) --> 拉取远端修改(git pull) --> 弹出储藏(git stash pop …)
上面操作结束后,如果有冲突会提示,如果没有就pull结束啦
10、git commit 和 git push
使用
git commit
命令提交暂存区的修改到本地仓库
git commit -m “这里面填充修改描述”修改提交描述,注意:这个只能本地分支修改最近一次的提交描述
git commit --amend -m “新的提交描述”将修改推送到远程仓库【如果分支不存在会创建分支】
git push如果远端分支不存在,需要创建分支,并将刚才的提交提上去
git push --set-upstream origin 远端分支名
例如:
git push --set-upstream origin xiaoyin-test指定关联远端分支
git branch --set-upstream-to=origin/ yhq-alpha-01
例如:
git branch --set-upstream-to=origin/yhq-alpha-01 yhq-alpha-01
11、git rebase
主要用于合并多条Commit,让提交的commit更方便查阅
使用 git rebase -i commitHash 的时候是合并的分支不包含这里填的commit
如果遇到了冲突,解决后使用 git rebase --continue
取消当前的 git rebase 操作 git rebase --abort
如果不需要保留之前的提交记录,就直接 git push -f 强制推到远端分支上面
首先看一下我提交了2个测试的commit
然后我这边准备将待合并1和2进行合并成为一条commit
执行 git rebase -i 17121a3f2ea49b2d7774a0e6b63cbb424712a811
然后回弹出来需要操作的commit,进行编辑
上面是我修改前后的变化,下面有改动commit前面属性的说明,可以参考
我上面改成s的意思就是将 合并2 与 合并1 这2条commit进行合并,修改完后,保存并退出
进接着回弹出来合并后的描述需要怎么修改,我是直接将之前的描述都注释掉了,然后新增了描述,这个根据自己的需求来
修改完成后同样的保存并退出
如果我们合并的commit有冲突这里会提示我们需要解决冲突,解决冲突和代码合并分支解决冲突的方式基本一致,我这里故意弄的没有冲突的commit,所以我这里就先忽略了
要是没有冲突就会直接显示下面的
此时发现我们本地的提交里面是回退了之前的2次commit,以及我们合并后的commit,如果还像保留之前的两次commit,就可以先将远端的代码拉下来同步,然后在将我们本地的commit推送到远端,这样也不用强推了,如果是像我这样,不保留前面的2次commit,我们就直接将本地的强推到远端即可
12、git cherry-pick
git cherry-pick
命令用于将指定的提交复制到当前分支上。- 它会创建一个新的提交,包含了指定提交的更改内容。
- 通过cherry-pick命令,可以选择性地将某个提交应用到当前分支上,而不必将整个分支合并过来
一点点笔记,以便以后翻阅。