[英]I have git repo with one branch: master. How do I rename the branch locally and on the remote repo?
[英]Accidentally merged remote branch to local master. How do I back out?
我在本地管理员上做了很多工作,因此决定需要一个新分支。 我在工作中的机器上创建了分支diffraction
并将其推送:
$ git checkout -b diffraction
$ git push
然后我去了另一台机器,取了:
$ git fetch
...
* [new branch] diffraction -> origin/diffraction
...
$ git merge origin/master
Already up-to-date.
$ git merge origin/diffraction
Merge made by the 'recursive' strategy.
.gitignore | 4 +-
Makefile | 11 +
...
9 files changed, 8225 insertions(+), 24 deletions(-)
create mode 100644
...
$ git branch
atmosphere
* master
rollback
无diffraction
分支。 另外,我只是将原点/衍射的东西拉到本地主节点上,而不是获得一个新的分支并在其中签出。 我以为那是圆顶。
如何从本地主服务器撤消更改(已提交但未推送)? 我希望它始终指向原点/主节点。
如何将原点/衍射获取局部衍射? 让它自动指向那里可能会很好。
当git merge origin/diffraction
您告诉Git将“原点/衍射”合并到当前分支中。 相反,您想要的是告诉Git基于“起源/衍射”创建一个新的本地分支。
这可以通过git checkout -b diffraction origin/diffraction
,甚至更简单:
git checkout diffraction
如果您要撤消您错误执行的合并,则可以执行以下操作:
git reset --hard @^
这可能会将当前master分支的指针重置为上一个提交,您可能需要使用git show @^
来检查上一个提交是否是您想要的。 否则,您需要用要重置为的提交的SHA-1替换'@ ^'。
设置
git clone https://github.com/svnpenn2/foo foo-1
git clone https://github.com/svnpenn2/foo foo-2
cd foo-1
set $RANDOM
echo $1 > README.md
git commit -am $1
git checkout -b diffraction
git push origin diffraction
cd ../foo-2
git fetch
git merge origin/diffraction
问题
$ git branch
* master
解决方案
$ git checkout diffraction
Branch diffraction set up to track remote branch diffraction from origin.
Switched to a new branch 'diffraction'
$ git branch
* diffraction
master
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.