git的命令
git的常用命令
git checkout --file.txt 恢复修改的文件 举例说明能恢复的场景
修改a.txt 添加1行 aaa 然后 git add a.txt git commit -m “添加一行” a.txt
修改a.txt 再添加一行 bbb 然后 git add a.txt 此时执行 git checkout – a.txt 则能恢复到第一次commit后的状态
也就是说只能从暂存区恢复到工作去
已经commit则已经到本地的仓库了,不能checkout到最原始的状态了
git diff 的使用
git diff file.txt
git log的使用 git log显示的是从最近到最远的日志
首先显示的本地仓库的提交日志,其次显示的远程仓库的提交日志
如果嫌展示的信息太多的话,可以用 git log –pretty=oneline
git分支的操作
分支的查看
- git branch 查看当前本地的分支 *指向的是当前的分支
- git branch -a 查看当前的分支和远程的分支
分支的创建
- git branch newbranch 创建一个新的分支,但是没有切换的新的分支上【基于当前的分支创建,注意当前的分支】
- git checkout newbranch 切换到新的的分支上(checkout注意与恢复文件命令区别)
- git checkout -b newbranch 创建一个本地分支并切换到这个分支上
-
git checkout -b newbranch origin/dev/audit
在本地创建一个分支并关联到远程的dev/audit分支上;有两点需要解释
- 如果不跟后面的关联指定则默认都是关联的是远程的master分支
- 也可以直接使用git branch 再git checkout进行切换
分支的合并(详细参考文章https://juejin.im/post/5af26c4d5188256728605809)
- git merge
- 在一个分支上上进行了feature的开发,提交了三次,而master上也进行修改提交了两次,如下图所示。则将master上的修改合并到分支上
- git merge master feature 或者是 git checkout feature再git merge master
- 将master分支合并到当前分支 合并后会如下图所示
- git rebase
- rebase 的过程首先会产生 rebase 分支(master)的备份,放到(no branch )临时分支中。再将支线分支(branch)的每一次提交修改,以补丁的形式,一个个的重新应用到主干分支上。这个过程是一个循环应用补丁的过程,期间只要补丁产生冲突,就会停止循环,等待手动解决冲突。这个冲突指的是上一个合并后版本与补丁之间的冲突
- git rebase master 将master分支并入当前分支
- 解决完冲突之后再进行git rebase --continue 解决下一个提交的冲突
- 可以使用git reflog 获取提交的版本 进行恢复git reset 版本号
- rebase 与merge的区别
-
-当需要保留详细的合并信息的时候建议使用git
merge,特别是需要将分支合并进入master分支时;当发现自己修改某个功能时,频繁进行了git
commit提交时,发现其实过多的提交信息没有必要时,可以尝试git rebase。