无论是对自己代码的控制,还是说与他人的协作,git都已经渗入我们的工作日常
1.如何将本地的文件提交到远程仓库
在git中,文件所在的位置有4个,工作区,索引区,本地仓库和远程仓库 利用add,commit和push将工作区的内容提交到远程仓库
如: git add .(将工作区的所有文件提交到索引区) git commit -m '提交的内容说明'(将索引区的文件提交到本地仓库) git push(将本地仓库的当前分支提交到远程仓库的对应分支)(默认的远程仓库名字是origin)
2.当commit或者push之后,如何撤销
思索一下原理,撤销,其实就是将一个位置的文件转移到上一个位置,只需要理清楚不同操作是怎么移动的
需要先通过git log查看之前的commitid(如果是push过了,推荐使用git reflog查看)
git reflog show xxx,查看xxx分支的历史git
- git reset --soft commitid
- git reset --mixed commitid
- git reset --hard commitid
reset可以看成是回退到commitid完成之后的代码 也可以将上面的commitid换成HEAD^,代表回退到上一个版本 如果push之后执行以上操作,记得重新push一下,push的时候会有冲突,push -f就行
git revert commitid revert指撤销某次commit,当同时存在merge的commit和当前分支修改的commit时, 使用git revert -m 1 commitid, -m 1 表示保留当前分支的更改 -m 2 表示保留merge分支的更改
--mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
--soft
不删除工作空间改动代码,撤销commit,不撤销git add .
--hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
3.撤销本地的操作
撤销merge,pull等操作 先用git reflog查看历史操作 再用用git reset --hard id就行