簡體   English   中英

創建新分支后git不推送到遠程

[英]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 更改推送到我的遙控器 - 怎么做?

  1. 在您的第一個命令列表中,您從未提交過任何分支,因此您在git status輸出中看到的是當前提交 ( HEAD ) 和工作目錄之間的差異。 當您使用git checkout切換分支時,git 會嘗試避免對工作目錄中的未完成更改執行任何操作。 另外,由於在從master創建perf_test之后沒有向perf_test提交任何內容, perf_test仍然與master相同,因此在perf_testmaster上看到相同的結果perf_test

  2. 我假設您輸入的是touch /path/to/bar.txt ,而不是git touch ,但可以。 您對bar.txt進行了更改並將該更改提交到perf_test分支,但隨后您將master (未更改且不包含更新的bar.txtbar.txt送到 origin 和 heroku。 您想將本地分支perf_test推送到遠程分支master嗎? 如果是這樣,語法是git push origin perf_test:master (對於heroku )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM