GitHub工具多用在多人协作开发,多团队开发的开发模式中。入职前只是稍有涉略,基本命令尚不熟练,因为没在实际过程中遇到过。尤其是一些突发状况。这边使用GIT较多,操作也较多,中间确实遇到一些问题,才正经开始认识这些常用命令。
1. 回滚
等同于ctrl+z,当你做了半天,发现不对,想反悔的时候,或者因为一些不当操作,就用到回滚这系列操作了。就是各种取消操作。
1.1 基本的 git reset --hard HEAD ,
1.2 基本的 git reset --hard HEAD^ 返回上一个版本
上面两个,在所谓 push之前,都可以原来取消当前的所有修改,HEAD回到最近的一次commit,是的你没看错,回到最近一次的commit,可以是你pull下来的,也可以是自己提交上去的。HEAD^是最近一次的上一次操作。就是这点区别。
但是当你push了,merge了之后,发现错了想反悔了,怎么办???
1.3 git reset --hard $(commit_id),退回到某一次更新ID
就是从 git log 中找到你想要返回的commit id。当你确定时,如果你想把刚刚做的,或者这个id之前的所有commit记录都取消,那么你可要慎重考虑下,因为这种操作是要强制修改服务器的,他会把这个commit之后的所有commit,都给清除掉。
1.4 git push origin (HEAD) --force, 强制回退,刷新服务器,或者是重置服务器。HEAD可选,HEAD一般代指当前commit的分支名。不加也没事,反正我还没碰到过。这个操作会把
好了,这就把你不想要的commit都给清掉了,或者说不想要的提交都清掉了,回到了那个指定为正确的版本。
但是,有时候可能commit已经找不到了,或者删了分支,或者清除了commit。这个时候怎么办?别急。除了git log,还有一个强有力的查找历史的命令
1.4 git reflog
怎么说呢,这个命令可以让你在一个操作记录版本库里,查找你要回退的操作。嗯,他跟commit不一样。它记载了你各种git操作,比如 checkout, revert ,push,merge,等等,实际就相当于操作日志,每个日志队对应一个编码值(HASH值,命令输出的第一列). 根据你自己的回忆,找到相应的hash值后,你就可以 --force了
2.分支
2.1 切换分支
2.2 创建分支副本,前提是分支得在服务端存在
git checkout -b new_branch_local origin/branch_name(remote)
2.3 创建新分支,然后发布服务器。