[英]git not pushing to remote after creating a new branch
我的 git 不知何故搞砸了。 問題分為兩個階段:
1)我創建了一個名為 perf_test 的分支,做了一些更改。 我想保留新分支中的更改,但恢復到 master 以檢查情況。 在 master 上,我發現 perf_test 上的更改顯示在 master 的 git status 中。
> git checkout -b perf_test
> touch /path/to/foo.txt
> git status
Uncommitted changes
modified /path/to/foo.txt
> git checkout master
> git status
Uncommitted changes
modified /path/to/foo.txt
我不明白為什么在切換到 master 后這些更改會出現在 master 中。
2)然后我取消了 perf_test 中的所有更改,並繼續在 perf_test 中進行了一些其他更改(這不是故意的 - 我以為我在 master 中,但在 perf_test 中 - 但這並不重要)
> git checkout perf_test
> git rm /path/to/foo.txt
> git status
...clean...
> touch /path/to/bar.txt
> git commit -am "changed bar.txt"
...committed...
> git branch
...
*perf_test
...
> git checkout master
> git push origin master
Everything up-to-date
> git push heroku master
Everything up-to-date
我希望對 bar.txt 的更改必須推送到 origin 和 heroku - 但是當我知道它們不是最新時,兩者都報告說它們是最新的(更改從未推送到任一遠程)。
我想將 bar.txt 更改推送到我的遙控器 - 怎么做?
在您的第一個命令列表中,您從未提交過任何分支,因此您在git status
輸出中看到的是當前提交 ( HEAD
) 和工作目錄之間的差異。 當您使用git checkout
切換分支時,git 會嘗試避免對工作目錄中的未完成更改執行任何操作。 另外,由於在從master
創建perf_test
之后沒有向perf_test
提交任何內容, perf_test
仍然與master
相同,因此在perf_test
和master
上看到相同的結果perf_test
。
我假設您輸入的是touch /path/to/bar.txt
,而不是git touch
,但可以。 您對bar.txt
進行了更改並將該更改提交到perf_test
分支,但隨后您將master
(未更改且不包含更新的bar.txt
) bar.txt
送到 origin 和 heroku。 您想將本地分支perf_test
推送到遠程分支master
嗎? 如果是這樣,語法是git push origin perf_test:master
(對於heroku
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.