3. git命令行操作之遠程庫操作

3.1 基本操作

  • 註冊GitHub帳號

  • 在本地創建一個本地庫並初始化

  • 登錄到gitHub創建一個遠程庫

注意:windows的憑據管理器中會保存github登錄資訊。如果要切換登錄者,先刪除相應憑據

  • 給遠程庫地址起一個別名

img

3.2 push操作

git push [遠程地址] [分支名]

img

  • 兩個參數

    • -u git push -u 表示加了參數-u後,以後即可直接用git push 代替git push origin master

    • -f git push -f 表示將目前自己本機的程式碼庫推送到遠端,並覆蓋

註:其實在推送時,盡量避免git push -f的操作,或者說git push -f是一個需要謹慎的操作,它是將本地歷史覆蓋到遠端倉庫的行為。例如b開發者在a進行git push -f前已經進行git pull操作,所以歷史上的commit2是可以查找到,但是如果沒有任何其他開發者進行pull,a再改變歷史並強制推送,這部分數據就會丟失。當然也並非禁止使用-f,有時,如果程式碼組內review後,確認程式碼正確無誤,保證大家未pull的情況下,強制推送後,可以保持目錄樹清潔。

3.3 clone操作

git clone[遠程地址]

能夠完整的把遠程庫下載到本地

同時會替我們創建origin遠程地址別名

會初始化本地庫

img

3.4 pull操作

pull操作是fetch操作和merge操作的合併

git fetch [遠程庫地址別名] [遠程分支名] 命令

img

git merge [遠程庫地址別名 / 遠程分支名] 命令

img

git pull [遠程庫地址別名] [遠程分支名] 命令

直接執行pull操作(拉取合併二合一)

img

3.5 邀請合作者

被邀請的人就能執行push操作了,即寫的許可權

img

3.6 協同開發時衝突的解決

注意:

  1. 如果不是基於GitHub遠程庫的最新版本所作的修改,便不能推送,必須先拉取

  2. 拉取下來之後如果進入衝突狀態,則按照”分支衝突解決”操作解決即可

如果其他協作者先push了內容

img

當前人員有push了部分相同內容就會產生衝突

img

3.7 跨團隊協作操作

3.8 SSH免密登錄

win10 OS提供憑據功能,第一次登錄後以後就可以免登錄。但是其他OS如果沒有憑據功能則每次都需要登錄。SSH可以解決這個問題 – 免密登錄

① 進入當前用戶的家目錄~

② 刪除之前創建的(如果有).ssh 目錄

img

③ 運行命令生成.ssh 密鑰目錄

img

④ 進入.ssh 目錄查看文件列表

⑤ 查看 id_rsa.pub 文件內容

img

⑥ 複製 id_rsa.pub 文件內容,登錄 GitHub,點擊用戶頭像→Settings→SSHandGPG keys →NewSSHKey→輸入複製的密鑰資訊

img

⑦ 回到 Gitbash 創建遠程地址別名 ,推送文件進行測試

img