Open dengal3 opened 8 years ago
今天遇到了好几个git上面的问题,记录一下。
git push origin ailin:front-end-dev 把本地的ailin分支上的内容推到远端的front-end-dev上。注意冒号两边不能有空格,因为我们tab补全的时候会自带了空格的,这点小细节要注意一下。
git push origin ailin:front-end-dev
关键步骤:建立新的ssh,在git仓库中设置user.email
第一步骤网上有很多详细的介绍,这里就不介绍了。
然后第二步的话就比较关键,网上提到的人也比较少。 今天做了小实验测试了一下,在ssh都已经设置好的情况下,网上很多说的什么git remote add second git@second_host:xxx/xxxxx.git 这样的一般是不需要的。要切换用户账号做commit提交,关键在于git config user.email ****@***.com这里。这里不设置好,提交的commit还是归到原来的global中设置的账号中。这点要切记。
git remote add second git@second_host:xxx/xxxxx.git
git config user.email ****@***.com
版本回退对于我来说是已经不是一个陌生的话题了。手速太快,commit不过脑,所以经常要回退orz。今天简单总结一下,方便日后查看。
版本回退有好几种场景下的版本回退。
第一种还好,祸害还不深。常见的就是用 git reset,git revert命令。
git reset
git revert
$ git reset --hard 07edf(版本号,通过git log可以看到) $ git reset --hard HEAD~1(表示回退到在当前head指针指向的版本往回数第几个版本,真绕口)
--hard 并不是唯一的选择,还有--soft,前者是回退了,并且你做的所有修改都没有了,后者是把你的参考退到这个commit时刻的状态,你做的修改实际上还是有的,只是不放进缓冲区了。
--hard
--soft
git revert和git reset作用很像,但是确实不一样。 git revert需要你指明了回退到哪个版本,然后它给你把仓库回退到那个状态,并且你所做的修改也是没了的,和--reset很像,同时会产生一个commit,这个commit就是专门revert的。
--reset
前面都是在做仓库内容的回退,就是你是想把你的仓库里面的文件变回你原来的样子。
但是如果我要做的是commit的回退呢,就是我不希望在commits中出现我的记录。 那就只能在本地做好版本回退以后,git push --force,强迫远端版本回退。当然这肯定会有很多副作用的,假设你的队友在你现在回退的commit下已经做了commit了呢等等这样的情况。
git push --force
当然,这个远端commit回退场景比较特殊,一般人也不会想去消除commit的,这里只是个人遇到这个需求所以稍作记录。
以上。
今天遇到了好几个git上面的问题,记录一下。
git push的空格
git push origin ailin:front-end-dev
把本地的ailin分支上的内容推到远端的front-end-dev上。注意冒号两边不能有空格,因为我们tab补全的时候会自带了空格的,这点小细节要注意一下。在一台电脑上面使用多个github账号提交
关键步骤:建立新的ssh,在git仓库中设置user.email
第一步骤网上有很多详细的介绍,这里就不介绍了。
然后第二步的话就比较关键,网上提到的人也比较少。 今天做了小实验测试了一下,在ssh都已经设置好的情况下,网上很多说的什么
git remote add second git@second_host:xxx/xxxxx.git
这样的一般是不需要的。要切换用户账号做commit提交,关键在于git config user.email ****@***.com
这里。这里不设置好,提交的commit还是归到原来的global中设置的账号中。这点要切记。git 版本回退
版本回退对于我来说是已经不是一个陌生的话题了。手速太快,commit不过脑,所以经常要回退orz。今天简单总结一下,方便日后查看。
版本回退有好几种场景下的版本回退。
第一种还好,祸害还不深。常见的就是用
git reset
,git revert
命令。--hard
并不是唯一的选择,还有--soft
,前者是回退了,并且你做的所有修改都没有了,后者是把你的参考退到这个commit时刻的状态,你做的修改实际上还是有的,只是不放进缓冲区了。git revert
和git reset
作用很像,但是确实不一样。git revert
需要你指明了回退到哪个版本,然后它给你把仓库回退到那个状态,并且你所做的修改也是没了的,和--reset
很像,同时会产生一个commit,这个commit就是专门revert的。前面都是在做仓库内容的回退,就是你是想把你的仓库里面的文件变回你原来的样子。
但是如果我要做的是commit的回退呢,就是我不希望在commits中出现我的记录。 那就只能在本地做好版本回退以后,
git push --force
,强迫远端版本回退。当然这肯定会有很多副作用的,假设你的队友在你现在回退的commit下已经做了commit了呢等等这样的情况。当然,这个远端commit回退场景比较特殊,一般人也不会想去消除commit的,这里只是个人遇到这个需求所以稍作记录。
以上。