茶包日常#1 git推送衝突與git push & git pull 的用法
昨天在用GitHub Page的時候,因為剛好在GitHub網頁版執行了操作,沒有跟本機的repo同步,導致git push發生衝突。這讓我重新理解了git push的原理,以及為什麼git push發生衝突的時候要先用git pull同步git repo再git push上去遠端伺服器。
git push是什麼?
git push是用來將本機的git repo推送到遠端伺服器的命令。在使用git push之前,需要先將本機的repo切換到要推送的分支上,然後再執行git push命令。
git checkout <branch-name>
git push
例如,要將本機的master分支推送到名為“my-repo”的遠端repo,可以執行以下命令:
git checkout master
git push origin master
為什麼git push發生衝突的時候要先用git pull同步git repo?
git push發生衝突的原因是,本機的repo和遠端repo的內容不一致。在這種情況下,git push會失敗,並提示發生衝突。
舉個例子
1.我在Github建立了一個新的 GitHub Action 工作流程,並將相關的配置文件存放在 .github/workflows
目錄下。
2.我在 GitHub 網頁版上編輯了配置文件,並提交了更改,因此在遠端伺服器中的分支比本機端多了一個(配置文件)
3.我沒有將配置文件的更改更新到本機。
4.我試圖將本機的程式碼推送到遠端。
因此在遠端伺服器的最後一個分支是有配置文件的,不過本機端沒有,因此衝突。
要解決git push衝突,需要先用git pull同步git repo。git pull會將遠端repo的最新內容下載到本機。這樣,本機的repo和遠端repo的內容就一致了,git push就可以成功了。
git pull
在git pull成功後,再執行git push命令,就可以將本機的repo推送到遠端伺服器了。
git push
總結
git push是用來將本機的git repo推送到遠端伺服器的命令。在使用git push之前,需要先用git pull同步git repo,以避免發生衝突。
-
在進行任何更改之前,先使用
git pull
命令從遠端拉取最新更改。 -
在提交更改之前,先使用
git status
命令查看本地儲存庫的狀態。 -
如果看到任何衝突,請立即解決。
-
在推送到遠端之前,先使用
git add
命令將所有更改添加到暫存區。 -
提交更改時,請使用描述性的提交消息。
-
定期推送本地更改到遠端。