在日常開發中,我們經常需要和團隊成員共享代碼,或者把自己的代碼備份到遠程服務器。這時候,Git的拉取(Pull) 和推送(Push) 操作就派上用場了。它們就像“拿”和“放”的動作,讓本地倉庫和遠程倉庫的代碼保持一致。
一、先搞懂“本地”和“遠程”¶
我們可以把 本地倉庫 想象成自己電腦上的“草稿本”,在這裏可以自由寫代碼、修改內容;而 遠程倉庫(比如GitHub、GitLab上的倉庫)則是團隊共享的“黑板”,所有人都能看到和修改上面的內容。拉取和推送就是讓草稿本和黑板上的內容互相“拿”和“放”。
二、拉取(Pull):從遠程倉庫“拿”代碼¶
什麼時候用拉取?¶
當你需要獲取別人對遠程倉庫的更新(比如同事改了代碼、遠程倉庫有新內容),或者想讓自己的本地代碼和遠程最新版本同步時,就用拉取。
拉取命令:git pull¶
格式:git pull [遠程倉庫名] [分支名]
- 遠程倉庫名:默認是 origin(如果沒改的話),代表你克隆的遠程倉庫地址。
- 分支名:比如 main 或 master(現在主流用 main 分支)。
示例步驟:¶
- 先確認你在正確的分支上(比如
main):
git checkout main(如果不在主分支,可能需要切換) - 執行拉取命令,獲取遠程最新代碼:
git pull origin main
(如果遠程倉庫和本地分支已經關聯,直接git pull也可以)
拉取結果:¶
- 如果遠程沒有更新,會顯示
Already up to date.(表示已經是最新的了)。 - 如果有更新,Git會自動合併(簡單情況),你本地代碼就會變成和遠程一樣的版本。
三、推送(Push):把本地代碼“放”到遠程¶
什麼時候用推送?¶
當你在本地完成了代碼修改,想把這些修改分享給團隊(或者備份到遠程)時,就需要推送。
推送命令:git push¶
格式:git push [遠程倉庫名] [分支名]
- 第一次推送時,可能需要加 -u(--set-upstream)來關聯本地分支和遠程分支,避免下次重複輸入:
git push -u origin main
後續推送就可以直接用 git push(Git會記住關聯的分支)。
示例步驟:¶
- 先確認本地有修改且已提交(沒提交的話,先執行
git add .和git commit -m "修改說明"):
-git add .(把所有修改的文件加入暫存區)
-git commit -m "添加了用戶登錄功能"(提交到本地倉庫) - 執行推送命令,把本地內容推到遠程:
git push origin main
(如果已經關聯過分支,直接git push即可)
推送結果:¶
成功後,遠程倉庫(比如GitHub)會顯示你剛剛提交的代碼,團隊成員就能看到並拉取你的修改了。
四、保持同步的小技巧¶
-
先拉取,再推送
每次工作前,先執行git pull獲取最新代碼,避免本地代碼和遠程版本“脫節”,導致推送時出現衝突。
(比如同事剛改了同一文件的同一行,你直接推送會覆蓋對方的修改,衝突就來了) -
處理衝突的簡單方法
如果拉取或推送時出現衝突(比如提示Automatic merge failed),Git會在文件裏標記衝突區域(用<<<<<<< HEAD等符號)。這時候:
- 打開衝突文件,找到被標記的部分,手動修改代碼(比如合併內容或按需求保留自己/對方的修改)。
- 修改後執行git add .和git commit -m "解決衝突",然後重新推送。 -
檢查狀態,避免誤推
推送前用git status確認是否有未提交的修改,或者分支是否正確,避免把沒寫完的代碼推出去。
五、總結¶
拉取(Pull)和推送(Push)是Git日常使用的核心操作,就像“溝通”一樣,讓本地和遠程倉庫“說話”。記住:拉取是爲了“更新自己”,推送是爲了“分享自己”。養成“先拉取再推送”的習慣,能有效減少代碼衝突,讓協作更順暢~
剛開始可能會覺得命令有點多,但多練幾次就會熟悉。遇到問題別慌,用 git status 查看狀態,或者 git --help 看幫助文檔,慢慢就能掌握啦!