git 學習筆記#
使用技巧#
Github 專案內搜尋#
在倉庫頁面上按 T ,然後直接輸入檔案名稱
記錄#
Gitee 配置的記錄#
因為 srtp 專案是用 gitee 作托管,所以今天試著配置了下 Gitee,還是花了些時間的,記錄如下:
- 主要參考的是Git 同時配置 Gitee 和 GitHub,但它上面第一步就是讓清除 git 的全局設置,有點不敢,因為怕清除後自己之前設置的一些東西出錯。
- 又看了幾個教程,發現Github 與 Gitee 共存配置上並沒有說要清楚全局設置,於是就跟著上面的一步步走,很順利地就設置好了。
- 一個收穫是
config
,id_rsa
都是可以用記事本打開並編輯的。
多人協作時的流程#
這次小組專案用的是華為雲,所以流程也都是基於華為雲來說的。
# 注:程式碼中的中文請根據實際情況進行替換
#確定好本次程式碼開發所要完成的任務,開好遠端分支x,相關資訊(分支名稱,描述,關聯工作項目)要註明好
git pull #確保程式碼、分支是最新的
git checkout -b 本地分支名 origin/遠端分支名 #檢出遠端分支到本地
# 程式碼開發
git add .
git commit -m"適當的批註"
git push #將程式碼推送到遠端分支,開發過程中這個操作可以頻繁點,好處是:程式碼備份和版本管理
# 完成本次程式碼開發所要完成的任務後(請確定功能實現,本地調試沒問題)
# 接下來進行分支的合併
# 在華為雲中新建合併請求(可設置檢視人,評審人,讓別人幫忙看看)
# 合併完成後(預設設置是分支合併後,源分支是刪除的)
git remote prune origin #當華為雲上顯示遠端分支已經刪除,但git branch -r仍然看到所刪除的分支,執行該命令
git checkout master #切回master分支(一次任務完成後,建議切回master分支,這樣pull的時候可以避免自己寫的程式碼丟失的問題)
git branch -d 本地分支名 #刪除本次任務所用的本地分支(也可以不刪,當作備份)
對 remote branch 的認識#
There are potentially three versions of every remote branch:
- The actual branch on the remote repository
- The snapshot of that branch locally
- A local branch that might be tracking the remote branch
常用命令#
add#
git add .
會根據。gitignore 做過濾git add *
會忽略。gitignore 把任何檔案都加入
推送#
檔案推送的三個步驟:
git add
git commit -m"輸入想說的話"
git push
查看狀況#
git status
分支#
-
轉到另一個分支
git checkout {分支名稱}
-
查看本地分支
git branch
-
查看遠端分支
git branch -r
-
查看本地和遠端分支
git branch -a
-
刪除本地分支
git branch -d {本地分支名稱}
-
強制刪除本地分支
git branch -D {本地分支名稱}
-
刪除遠端分支
git push origin --delete {遠端分支名稱}
-
已經刪除的遠端分支但仍
git branch -a
時仍顯示 :git remote prune origin
日誌#
git log
查看分支提交歷史git reflog
也是查看日誌,主要區別是會顯示reset --hard
程式碼回退#
git reset --hard {commit_id}
git reset --hard HEAD^
回退到上一版本
錯誤與解決#
-
錯誤:
Updates were rejected because the remote contains work that you donot have locally.
- 場景: 在嘗試 gitee 的時候,先是建了個遠端倉庫。然後在本地新建了個同名的資料夾,然後
git init git remote add origin https://gitee.com/spike23187/hello-gitee.git
在資料夾裡新建了個檔案,
push
的時候報的錯- 解決: 根據下方的提示,是我沒有先
pull
,本地檔案不是最新的。
- 場景: 在嘗試 gitee 的時候,先是建了個遠端倉庫。然後在本地新建了個同名的資料夾,然後
-
Updates were rejected because the tip of your current branch is behind its remote counterpart
- 場景:上述那個場景中,
git pull origin master
後報的錯 - 解決:
git pull origin master --rebase
- 參考連結:Git 常見報錯:Updates were rejected because the tip of your current branch is behind
- 收穫:雖然使用 GitHub 托管程式碼有段時間了,但一直是用插件簡化操作的。這次算是第一次用 git bash,就報了兩個錯,感覺 git 要用好,還是有段路要走的。
- 場景:上述那個場景中,
-
- 場景時報錯,大意是網路問題
- 解決:
git config --global http.proxy 'http://127.0.0.1:7890' git config --global https.proxy 'http://127.0.0.1:7890'