目录
git强制覆盖
git fetch --all
git reset --hard origin/master
git pull
git强制覆盖本地命令(单条执行):
git fetch --all && git reset --hard origin/master && git pull
git命令合并分支代码
1、进入要合并的分支(如开发分支合并到master,则进入master目录)
git checkout master
git pull
2、查看所有分支是否都pull下来了
git branch -a
3、使用merge合并开发分支
git merge 分支名
4、查看合并之后的状态
git status
5、有冲突的话,通过IDE解决冲突;
6、解决冲突之后,将冲突文件提交暂存区
git add 冲突文件
7、提交merge之后的结果
git commit
如果不是使用git commit -m "备注" ,那么git会自动将合并的结果作为备注,提交本地仓库;
8、本地仓库代码提交远程仓库
git push
git回退操作
1:在本地项目库中,在工作区修改或删除已受控的文件,后悔了,想要会退到之前的状态(工作区的文件回到修改之前的状态,暂存区,库区不受影响)
git checkout --filename 回退某个文件
git checkout -- . 回退当前目录所有修改
2:在本地项目库中,修改或添加或删除了某个文件之后,执行了git add的动作之后,后悔了,想取消add的动作(工作区不受影响,库区不变,暂存区回到add之前的状态)
git reset HEAD filename
git reset HEAD .
3:在本地项目库中,修改或添加或删除了某个文件之后,执行git add ,git commit的动作之后,想取消git commit的动作,想重新commit一次(工作区,暂存区不变,库区回到commit之前的状态)
git reset --soft HEAD^
4:在本地项目库中,修改或添加或删除了某个文件之后,执行git add ,git commit的动作之后,想取消add及commit的动作,但是保留工作区的修改:(暂存区,库区回到之前的状态)
git reset --mixed HEAD^
5:在本地项目库中,修改或添加或删除了某个文件之后,执行git add ,git commit的动作之后,想取消add及commit的动作,并且抛弃工作区的修改:
git reset --hard HEAD^
·说明:如果发现第五类的回退操作有误,想回到之前的状态
·# gitrelog
·# 2522695 HEAD@{0}: reset: moving to HEAD^
·# gitreset --hard HEAD@{0}
6: 在本地项目库中,修改或添加或删除了某个文件之后,执行git add ,git commit的动作之后,并且已经推送到远程库,如果回退远程库的此次合入呢?
在本地库通过git log找到此次提交的commit-ID(40位哈希值)
git revert-n commit-ID
git commit –m “xxxxx”
git push origin 分支名