Git學習筆記(詳細)
阿新 • • 發佈:2021-11-26
https://gitee.com/all-about-git git大全 常用命令參考
概述
- 官網:https://git-scm.com/
- Git是一個免費的、開源的分散式版本控制系統
- 程式碼託管中心(遠端庫):區域網GitLab、網際網路GitHub、碼雲Gitee
安裝Git
- 官網下載,直接預設安裝即可(儘量不要修改路徑),滑鼠右鍵出現
Git Bash Here
即安裝成功。 - 檢視版本:git bash 裡面執行
git --version
- git bash很卡,清理windows臨時目錄可以解決:C:\Users\Administrator\AppData\Local\Temp
常用命令
- 檢視所有命令
git --help
- 檢視某個命令的幫助文件
git add --help
, 會出現網頁的文件供檢視
# 設定使用者簽名 $ git config --global user.name xxx $ git config --global user.email [email protected] # 檢查配置 $ cat ~/.gitconfig # 初始化本地庫 將當前目錄變成一個git倉庫 會生成一個.git目錄 $ git init # 檢視狀態 $ git status # 新增修改到暫存區(新檔案、修改檔案、刪除檔案都要add到stage) $ git add hello.txt # 刪除暫存區裡的檔案 $ git rm --cached hello.txt # 提交到本地庫 -m說明 不寫也會開啟一個編輯器讓寫 $ git commit -m "my first commit" hello.txt # 或者git commit hello.txt -m "comment" $ git commit -m "my first commit" # 提交所有暫存區的修改 $ git commit -am "hot fix first commit " # 相當於add + commit 自動提交所有修改到暫存區, 並提交到本地庫 # 檢視版本日誌 $ git reflog # 引用日誌, 記錄所有版本的版本號, 包括回滾, 精簡版 $ git log # 檢視詳細日誌(提交作者和提交日期), 只有當前版本和以前的版本資訊 $ git log --pretty=oneline # 在一行內顯示 # 版本穿梭, 移動的是head指標, master分支 -> head指標 -> 具體的版本 $ git reset --hard xxxxxxx # 根據git reflog中的版本號進行穿梭版本 $ git reset --hard HEAD^ # ^^表示回退兩個版本,HEAD~100表示回退100個版本
分支管理
$ git branch --help # 檢視所有branch命令 $ git branch # 檢視所有分支 *號表示當前分支 $ git branch -v # 檢視所有分支 $ git branch hot-fix # 建立分支hot-fix $ git check hot-fix # 切換到分支hot-fix $ git merge hot-fix # 將hot-fix分支合併到當前分支 如果兩個分支同時修改了同一個檔案會有衝突 當前狀態會在MERGING狀態 此時需要編輯衝突的檔案 其中會標出當前分支修改的部分 hot-fix分支修改的部分 修改後再提交 $ git branch -d hot-fix # 刪除分支, 需要保證該分支的內容已經合併到它的HEAD版本的分支
團隊協作:
- 團隊內協作,一個遠端庫即可,需要建立者加入許可權,開發者clone程式碼到本地庫,修改後push,其他成員pull即可
- 跨團隊協作,fork別的遠端庫,修改後push,發起pull request請求遠端庫拉取自己修改後的程式碼,稽核通過會merge到他們的遠端庫裡
公共庫都可以clone,不需要驗證,首先需要在github上建立遠端倉庫git-demo,可以在github上邀請協作
ssh免密登入
# 由於本地git倉庫和遠端git倉庫是通過SSH加密的,所以需要配置ssh,首先本地生成ssh的公鑰和私鑰,將公鑰配置到github上,配置了ssh免密登入才可以使用[email protected]:YourName/xxx.git,否則只能使用https://github.com/YourName/xxx.git,且需要驗證
$ ssh-keygen -t rsa -C [email protected] # 直接回車,在使用者目錄下會生成.ssh目錄,裡面有公鑰和私鑰
團隊內協作
####已有本地倉庫,在github上建立倉庫後,將本地倉庫同步到遠端庫
$ git remote add ori https://github.com/bingmous/git-demo.git # 新增遠端庫 git remote add 別名 地址(遠端倉庫的地址)
$ git remote add origin https://gitee.com/bingmous/git-demo.git # gitee 注意ori只是一個別名
$ git remote -v # 檢視遠端庫,會有fetch和push兩個 -v表示詳細
$ git push -u ori master # 推送當前庫到遠端庫(第一次推送)-u使用ori作為上游
$ git pull origin master # 拉取最新程式碼
####直接從遠端庫clone
$ git clone https://gitee.com/bingmous/git-demo.git # clone做了三件事 拉取程式碼 初始化本地倉庫 建立遠端庫別名(預設為origin)
跨團隊協作
- fork一下,會在自己的遠端庫裡多一個fork的庫
- 修改程式碼後,提交,並建立pull request,傳送pull request,在對方的倉庫下就可以看到你的pull request
- 對方看到pull request後可以看到修改的程式碼,並與自己的程式碼合併