Answers:
那几乎可以工作。
当推送到非默认分支时,您需要指定源引用和目标引用:
git push origin branch1:branch2
要么
git push <remote> <branch with new changes>:<branch you are pushing to>
<remote>/<branch>
git push origin :branch2
以为这样就只是把当前的本地分支到远程branch2
,它将代替删除远程branch2
!正确的方法是git push origin HEAD:branch2
。
当然,尽管仅当它是BRANCH2的快进或您强行使用时才起作用。做这种事情的正确语法是
git push <remote> <source branch>:<dest branch>
有关其工作原理的更多详细信息,请参见git push手册页上“ refspec”的描述。还要注意,强制推送和重置都是“重写历史记录”的操作,因此,除非您绝对确定知道自己对任何远程存储库和其他存储库正在做什么,否则请不要轻率地尝试。具有相同项目的分叉/克隆的人。
git push --force remote local-branch:remote-branch
。
非常简单 假设您对本地和远程的分支机构A进行了更改,但您想将这些更改推送到任何地方都不存在的分支机构B。
步骤01:创建并切换到新的分支B
git checkout -b B
步骤02:在新的本地分支中添加更改
git添加 //或特定文件
步骤03:提交更改
git commit -m“ commit_message”
步04:将更改到新的分支乙。下面的命令将远程创建一个新的分支B
git push起源B
现在,您可以从bitbucket验证分支B比分支A多提交一次。当您结帐分支A时,这些更改将不存在,因为这些更改已被推送到分支B中。
注意:如果已将更改提交到分支A,然后要将这些更改转移到新的分支B,则必须首先重置这些更改。#HappyLearning
在我的情况下,我有一个本地提交,但未提交到origin\master
,而是提交到了本地master
分支。现在应将此本地提交推送到另一个分支。
使用Git Extensions,您可以执行以下操作:
您也可以在GIT命令行上执行此操作。从David Christensen复制的示例:
我认为您会发现
git cherry-pick
+git reset
是一个更快的工作流程:使用相同的场景,将“功能”作为最不正确提交的分支,这样做会容易得多:
git checkout master
git cherry-pick feature
git checkout feature
git reset --hard HEAD^
节省了大量工作,这
git cherry-pick
是设计用来处理的方案。我还要注意,如果它不是最高的提交,那么它也将起作用。您只需要通过以下方式为Cherry-pick的参数添加一个命令即可:
git checkout master
git cherry-pick $sha1
git checkout feature
git rebase -i ... # whack the specific commit from the history
我的git push origin branch1:branch2
命令结果不好:
就我而言,已被branch2
删除并branch1
已进行了一些新更改。
因此,如果你只想要改变的推动branch2
从branch1
,请尝试以下方法:
branch1
:git add .
branch1
:git commit -m 'comments'
开branch1
:git push origin branch1
开branch2
:git pull origin branch1
开branch1
:恢复为上一次提交。
git init
#git remote remove origin
git remote add origin <http://...git>
echo "This is for demo" >> README.md
git add README.md
git commit -m "Initail Commit"
git checkout -b branch1
git branch --list
****add files***
git add -A
git status
git commit -m "Initial - branch1"
git push --set-upstream origin branch1
#git push origin --delete branch1
#git branch --unset-upstream
您已承诺BRANCH1,并希望在不丢失更改的情况下摆脱此承诺? git reset是您需要的。做:
git branch BRANCH2
如果您希望BRANCH2成为新分支。如果需要,还可以在最后将其与另一个分支合并。如果BRANCH2已经存在,则省略此步骤。
然后做:
git reset --hard HEAD~3
如果要在已提交的分支上重置提交。这将更改最后三个提交。
然后执行以下操作将重置的提交提交到BRANCH2
git checkout BRANCH2
此来源很有帮助:https : //git-scm.com/docs/git-reset#git-reset-Undoacommitmakingitatopicbranch
branch1
,并branch2
需要被遥控器上的?如果要从本地推branch1
送到远程该origin branch2
怎么办?