03.07 Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)

Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)

以下為 windows 系統

一、git 的安裝與配置

1、git安裝

官網

https://git-scm.com/download/win

下載 Git-2.25.1-64-bit.exe

Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)

按提示安裝,默認勾選

2、郵箱註冊

由於企業級是把代碼託管到 gitlab 上,我們一般用企業郵箱註冊申請賬號,再讓你直系上級給你添加權限。

Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)

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 中即可

Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)


注意:密鑰分成兩個文件,一個私鑰(id_rsa)、一個公鑰(id_rsa.pub)。私鑰保存在你的電腦上,公鑰交項目負責人添加到服務器上。用戶必須擁有與服務器公鑰所配對的私鑰,才能訪問服務器上的代碼庫

二、git 使用過程中遇到的問題

1、瞭解 git 的工作區域

Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)

① Workspace: 工作區,就是你平時存放項目代碼的地方

② Index / Stage: 暫存區,用於臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息

③ Repository: 倉庫區(或版本庫),就是安全存放數據的位置,這裡面有你提交到所有版本的數據。其中 HEAD 指向最新放入倉庫的版本

④ Remote: 遠程倉庫,託管代碼的服務器,可以簡單的認為是你項目組中的一臺電腦用於遠程數據交換

2、idea 工具配置 git

Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)

3、新建分支

建議在 gitlab 上新建分支,保證是最新的代碼。

往往我們建好分支後,通過 idea 沒有刷新建好的分支,你遇到過嗎?

是否遇到? (單選)
0人
0%
A.遇到
0人
0%
B.從未遇到
<button>投票/<button>

這個時候我們可以使用 gti fetch 來解決

補充:git fetch 和 git pull 的區別>>>

git fetch 是將遠程主機的最新內容拉到本地,用戶在檢查了以後決定是否合併到工作本機分支中。

而 git pull 則是將遠程主機的最新內容拉下來後直接合並,即:git pull = git fetch + git merge,這樣可能會產生衝突,需要手動解決。

4、idea工具 pull 代碼報錯

Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)

出現上面的情況,通常我們做本地調試,會修改配置文件參數,避免衝突,只在本地開發使用,不能提交到線上。如果每次在更新前,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”

Python 閒談 12 -- 聊聊開發中使用 git 遇到的問題(上)

針對第二種情況:

同上可以使用 undo Commit

下章繼續探討 git Commit 提交那些事。

順便問下大家,使用 git 通常是用命令行還是用工具自帶的操作????

>>>


分享到:


相關文章: