以下為 windows 系統
一、git 的安裝與配置
1、git安裝
官網
https://git-scm.com/download/win
下載 Git-2.25.1-64-bit.exe
按提示安裝,默認勾選
2、郵箱註冊
由於企業級是把代碼託管到 gitlab 上,我們一般用企業郵箱註冊申請賬號,再讓你直系上級給你添加權限。
3、git的兩種下載方式
在 git 中 clone 項目有兩種方式:HTTPS 和 SSH
① 以 https:// 開頭
② 以git@開頭
注意:
HTTPS:不管是誰,拿到 url 隨便 clone,但是在 push 的時候需要驗證用戶名和密碼;
SSH:clone 的項目你必須是擁有者或者管理員,而且需要在 clone 前添加 SSH Key。SSH 在 push 的時候,是不需要輸入用戶名的,如果配置 SSH key 的時候設置了密碼,則需要輸入密碼的,否則直接是不需要輸入密碼的。
4、git 生成秘鑰(初次設置)
檢查電腦是否存在 SSH Key:$ cd ~/.ssh$ ls
如果存在 id_rsa.pub 或 id_dsa.pub 文件,說明文件以及存在,跳過創建 SSH Key 步驟
① cd ~/.ssh/ 【如果沒有對應的文件夾,則執行 mkdir ./.ssh】
② git config --global user.name "daxing"
③ git config --global user.email "[email protected]"
④ ssh-keygen -t rsa -C "[email protected]"
連續回車
⑤ 複製SSH keys 即 id-rsa.pub 中的字符串,天驕到 Gitlab 中即可
注意:密鑰分成兩個文件,一個私鑰(id_rsa)、一個公鑰(id_rsa.pub)。私鑰保存在你的電腦上,公鑰交項目負責人添加到服務器上。用戶必須擁有與服務器公鑰所配對的私鑰,才能訪問服務器上的代碼庫
二、git 使用過程中遇到的問題
1、瞭解 git 的工作區域
① Workspace: 工作區,就是你平時存放項目代碼的地方
② Index / Stage: 暫存區,用於臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息
③ Repository: 倉庫區(或版本庫),就是安全存放數據的位置,這裡面有你提交到所有版本的數據。其中 HEAD 指向最新放入倉庫的版本
④ Remote: 遠程倉庫,託管代碼的服務器,可以簡單的認為是你項目組中的一臺電腦用於遠程數據交換
2、idea 工具配置 git
3、新建分支
建議在 gitlab 上新建分支,保證是最新的代碼。
往往我們建好分支後,通過 idea 沒有刷新建好的分支,你遇到過嗎?
這個時候我們可以使用 gti fetch 來解決
補充:git fetch 和 git pull 的區別>>>
git fetch 是將遠程主機的最新內容拉到本地,用戶在檢查了以後決定是否合併到工作本機分支中。
而 git pull 則是將遠程主機的最新內容拉下來後直接合並,即:git pull = git fetch + git merge,這樣可能會產生衝突,需要手動解決。
4、idea工具 pull 代碼報錯
出現上面的情況,通常我們做本地調試,會修改配置文件參數,避免衝突,只在本地開發使用,不能提交到線上。如果每次在更新前,revert 重置修改的代碼,pull 成功後又需要恢復修改,這樣太麻煩了...
這個時候就可以使用 git Stash Changes 保存到堆棧中,當我們 成功 pull 後,在通過 git UnStash Changes 來恢復。
其他應用場景
① 當正在 dev 分支上開發某個項目,這時項目中出現一個 bug,需要緊急修復,但是正在開發的內容只是完成一半,還不想提交,這時可以用 git stash 命令將修改的內容保存至堆棧區,然後順利切換到 hotfix 分支進行 bug 修復,修復完成後,再次切回到 dev 分支,從堆棧中恢復剛剛保存的內容。
② 由於疏忽,本應該在 dev 分支開發的內容,卻在 master 上進行了開發,需要重新切回到 dev 分支上進行開發,可以用 git stash 將內容保存至堆棧中,切回到 dev 分支後,再次恢復內容即可。
5、如何撤銷 commit?
場景:
① commit 提交代碼發現註釋還是上一次的備註,如果只想修改提交註釋,如何操作?
② 當我們 commit 但是沒有 push 到遠程,如果這個時候發現代碼有問題,該怎麼操作?
針對第一種情況:
idea 工具中如何實現:
點擊 “Version Control” >>> “Log” ,我們可以看到提交的記錄,右鍵選擇“Edit Commit Message”
針對第二種情況:
同上可以使用 undo Commit
下章繼續探討 git Commit 提交那些事。
順便問下大家,使用 git 通常是用命令行還是用工具自帶的操作????
>>>
閱讀更多 Python大星 的文章