这篇文章是接着上篇文章学习git(多分支协同开发部分)
在上篇文章中我们简单学习了一些文件操作命令
git init把当前目录变成git可以管理的仓库git add file把指定文件添加到暂存区git commit -m '这是提交说明'把暂存区的文件提交到当前分支,这里需要注意,他只会把暂存区的文件提交到当前分支,如果你保存过但没add的文件不会提交git status查看当前仓库状态,比如说暂存区里有什么文件,或者是什么文件刚提交到当前分支git diff file查看已经暂存起来的文件(file)和上次提交时的快照之间(HEAD)的差异git log查看当前日志(我们可以看到有一大串十六进制字符串这是版本号 )git reset --hard HEAD^回退到上一个版本,也可以使用git reset --hard 版本号回退到指定版本,也可以使用git reset --hard HEAD~x回到上面x个版本前git reflog查看命令历史git checkout -- file撤销当前文件的修改(这里面有几种情况)- 当前文件修改过但是没有添加到暂存区,那么就回推到文件没有修改之前
- 当前文件修改过也add过但是没有commit,那么回退之后,没有变化(我测试的是这样的)
- 当前文件修改过也add过也commit过,那么回退之后,也没有变化(我测试的结果)
git reset HEAD <file>把暂存区的修改回退到工作区git rm test.txt删除文件
撤销修改和版本回退的总结
-
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file。 -
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD <file>,就回到了场景1,第二步按场景1操作。 -
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
通过远程库多分支协同合作
- 首先我们需要有一个远程库,我们可以自己创建也可以使用他人远程库,一般在开发中,我们使用的都是公司的远程库
- 然后拿到远程库的地址,克隆它
git clone 地址,可能我们在克隆的时候会让我们登录账号 - 我们拿到代码后需要创建一个新的分支,让我们在开发中不受他人开发影响,也不影响到别人
git branch 分支名,然后切换git checkout 分支名,也可以使用git checkout -b 分支名直接进行创建然后切换 - 然后我们就可以进行开发了 ,在开发过程中我们利用
git add .和git commit -m 'xxx'和git status进行代码的提交和状态的查看 - 当我们功能开发后之后,需要上传到远程仓库,我们先
git push origin xxx上传到当前分支对应的远程分支 - 然后切换到dev分支
git checkout dev - 然后把远程测试服的分支拉取下来,
git pull origin dev - 然后进行代码合并
git merge 这里是你开发的分支名 - 合并代码之后把当前的dev分支推送到远程dev分支,然后发版
当我们当前需求完成后,把分支删除
删除本地分支
git branch -d xxx删除不是当前使用的本地分支(已经merge的本地分支)git branch -D xxx删除不管有没有merge的本地分支
删除远程分支
git branch -r先使用 这个命令查看远程分支git push --delete origin xxx删除远程分支git push prigin :xxx也可以使用这个命令删除远程分支
来源:https://blog.csdn.net/mengweizhao/article/details/101346340