我想把我已经承诺掌握的最后几个提交移动到一个新的分支,然后在完成这些提交之前把主人带回去.不幸的是,我的Git-fu还不够强大,有什么帮助吗?
即我怎么能从这里走出来
master A - B - C - D - E
Run Code Online (Sandbox Code Playgroud)
这个?
newbranch C - D - E
/
master A - B
Run Code Online (Sandbox Code Playgroud) 我希望能够做到以下几点:
基于其他(远程或本地)分支(通过git branch或git checkout -b)创建本地分支
将本地分支推送到远程存储库(发布),但使其可跟踪,git pull并git push立即工作.
我怎么做?
我--set-upstream在Git 1.7中知道,但这是一个创作后的动作.我想找到一种方法,在将分支推送到远程存储库时进行类似的更改.
上下文:我正在为master添加一个简单的功能.几分钟后,我意识到这不是那么简单,应该更好地进入一个新的分支.
这总是发生在我身上,我不知道如何切换到另一个分支并采取所有这些未经修改的更改与我离开主分支清洁.我想git stash && git stash branch new_branch应该只是完成它,但这就是我得到的:
~/test $ git status
# On branch master
nothing to commit (working directory clean)
~/test $ echo "hello!" > testing
~/test $ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: testing
#
no changes added to commit (use "git add" and/or …Run Code Online (Sandbox Code Playgroud) 我怎么能在git中这样做:
我当前的分支是branch1,我做了一些本地更改.但是我现在意识到我实际上是要将这些更改应用于branch2.有没有办法应用/合并这些更改,以便它们成为branch2上的本地更改而不在branch1上提交它们?
我已经完成了相当多的工作("你的分支在37次提交之前超过了'origin/master'.")这真的应该进入它自己的分支而不是进入master.这些提交只存在于我的本地机器上,并没有被推到origin,但情况有点复杂,因为其他开发人员一直在推动origin/master,我已经撤消了这些更改.
如何追溯将我的37个本地提交移动到新分支?根据文档,似乎git rebase --onto my-new-branch master或...origin/master应该这样做,但两者都只是给我错误"致命:需要单一修订". man git-rebase没有提供修改,rebase并且其示例没有这样做,所以我不知道如何解决此错误.
(请注意,这不是将现有的,未完成的工作移动到Git中的新分支或如何将我的本地未提交的更改合并到另一个Git分支中的重复?因为这些问题涉及本地工作树中未提交的更改,而不是具有的更改已在当地承诺.)
我一直在主分支上编辑一些模块,但我没有提交它们.我现在认为这些变化应该在实验分支而不是主分支上.
如何将这些编辑内容添加到实验分支中?将它们复制到某个临时位置,创建分支,然后将它们复制回来?
我如何配置东西,以便当我从新的实验分支进行git推送时,它会进入我的GitHub仓库中的同名分支?
我刚刚对分支进行了更改.我的问题是,如何将更改提交给其他分支?
我正在尝试使用:
git checkout "the commmit to the changed branch" -b "the other branch"
Run Code Online (Sandbox Code Playgroud)
但是,我不认为这是正确的做法,因为在这种情况下我正在创建一个新的分支而不是将更改提交给"另一个分支".
我应该使用以下命令吗?
git merge "the other branch"
Run Code Online (Sandbox Code Playgroud)
谢谢.
服务器上有一个git控制文件夹,其中检出主分支,并且修改了一大堆文件但未提交.有没有办法让我将更改提交到一个单独的分支,以便我可以回到一个干净的版本?
即我想有效地撤消所有这些人的变化,但是将它们存储在另一个机会中,所以如果那个人想要他们的改变,他们可以切换到那个分支.
(是的,我知道这不是git的设计工作,但这是我的情况!)任何想法非常感谢.
我急切地陷入代码模式并修改了一些文件,但忽略了从master分支.mod不是那么广泛,我不能重做它们,但是什么是在master中进行我的(迄今为止,未提交的)更改并将它们迁移到新分支的好方法,最后让master保持不变?
我目前可以通过以下三个步骤来完成
git reset HEAD <file>...git checkout [-b] <branchname>git add <file>...有没有更好的方法来移动分阶段的更改?
偶尔我会在以下情况下发现自己:我正在分支机构(比如大师),我正在编辑一些文件,但是当提交时,我意识到我宁愿承诺一个新的分支(比如说实验) ).换句话说,旧分支(主)必须保持原样,并且应创建一个新的分支,如下所示:
.. -- master -- new commit
Run Code Online (Sandbox Code Playgroud)
最简单的方法是什么?
目前,我提交旧分支,然后创建新分支,最后重置旧分支.但这真的很难看.
This question和其他人在Git中处理这个问题,但我通常只在SourceTree IDE中工作。我做了一些工作,但在提交之前,我意识到它应该在自己的分支上。我如何在不丢失我所做的工作的情况下做到这一点?
git ×13
git-branch ×5
branch ×1
dvcs ×1
git-push ×1
git-remote ×1
git-stash ×1
github ×1
repository ×1