簡體   English   中英

git pull 會不會覆蓋我剛寫的代碼

[英]Will git pull overwrite the code I just wrote

假設有這樣一個場景:早上拉取了最新的代碼,然后對代碼做了一些改動。 當我想push的時候,因為別人先push了,所以我push失敗了,需要先pull最新的代碼。 我想:pull操作會不會把我今天寫的代碼覆蓋掉。 查了網上的一些帖子,說會覆蓋我本地的代碼於是做了個測試:我寫了一個1.cpp,里面只有header個文件和主要函數,然后推到GitHub,然后直接加了一個2.cpp。 cpp到GitHub模擬別人的推送操作。 然后我修改了本地的1.cpp,給它加了幾個測試函數,然后拉入了git bash,但是拉完之后發現本地的1.cpp沒有被GitHub上的1.cpp覆蓋,而且還是和原來一樣。

我使用翻譯器,所以如果語言冒犯了請原諒

pull操作不一定會覆蓋你的文件,這是不正確的。 pull操作將fetch遠程分支,並將其集成到您的本地。 這意味着它將merge更改。

這就是你的情況。 您已將 1.cpp 文件推送到源。 然后在本地修改。 然后您再次從原點拉出分支 - 因此它合並了該文件的更改。 並且 git 知道,您已經向該文件添加了一些內容,並且它可以靜默合並這些更改。 例如,如果您更改該文件的 header - 它會導致合並沖突,而 git 會要求您解決它。 因此,您必須決定要使用哪個版本的文件,或者如何合並它。

但是,如果您修改了 Github 上的 1.cpp 文件,然后拉取 - 那么您的本地文件將被覆蓋。 因為它將比本地“更新”,所以 git 會將這些更改合並到您的本地文件中。

暫無
暫無

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

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