这篇文章是接着上篇文章学习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 origin :xxx
也可以使用这个命令删除远程分支
把一个项目上传到一个新的远程仓库中的过程
- 把当前项目 使用
git init
git remote add origin https://gitee.com/tot123456/react-study.git
把你的远程仓库与本地项目链接git pull origin master
把远程仓库拉取到本地git add . git commit -m ' '
把项目添加到本地仓库git push origin master
把项目推送到远程仓库