Git入門

十二時辰_發表於2021-07-25
* `git`是一個優秀的分散式版本控制系統,支援跨網路的軟體本本控制;
* 版本庫: 通常來說是一個目錄,在這個目錄裡面包含的檔案都是可以被`git`管理起來的,每個檔案的修改,刪除,`Git`都是可以進行追蹤的,用於在需要的時刻進行還原;
* 配置:
    * 使用命令列配置,自己的使用者資訊
* `git config --global user.name`:通常是`Github`的使用者名稱
* `git config --global user.mail`:通常是`Github`的註冊郵箱;

這裡寫圖片描述
* 建立本地倉庫:
* 首先可以在一個適合的地方建立一個空目錄
* 然後進入這個目錄,執行git命令進行初始化
* 對於這個目錄裡面的.git目錄裡面的內容一定不能夠進行修改
這裡寫圖片描述
* 建立檔案,將檔案新增到交給git進行管理
這裡寫圖片描述
* 提供版本,並且提供註釋資訊
這裡寫圖片描述
* 幾個基本的命令;
* git status:使用者輸出當前倉庫的狀態
這裡寫圖片描述
* 如果修改檔案內容在進行檢視,就會出現是否提交的提示
這裡寫圖片描述
* git diff:用於檢視具體的內容變化
這裡寫圖片描述
* 如果確定當前的內容是準確的,就可以進行提交
這裡寫圖片描述
* git log;用於檢視提交日誌,
這裡寫圖片描述
* 只顯示提交的資訊
這裡寫圖片描述
* 回退到上一個版本
這裡寫圖片描述
* 會退到上上一個版本git reset --hard HEAD^^
* 會退到第幾個版本git reset --hard HEAD~num
* 會退到具體的某個版本git reset --hard 具體的版本號碼
* 上面是回退到之前的版本,如果需要回退到之後的版本,就需要具體的版本號;
* 現在回退到第三個版本
這裡寫圖片描述
* 對於版本的回退,不需要完整的版本號碼,只要輸入的版本號碼可以唯一的識別各個不同的版本就可以了
* git reflog: 用於檢視歷史的提交記錄
這裡寫圖片描述
* 通常來說add命令是將檔案放到緩衝區,通過commit命令將檔案提交到版本區
* add執行的操作
這裡寫圖片描述
* commit執行的操作
這裡寫圖片描述
* git checkout --filename:
* 如果filename檔案自修改後還沒有放到暫存區,現在撤銷修改,就會回到和版本一樣的狀態;
* 如果fileName檔案已經新增到暫存區,又進行了修改,進行撤銷之後,就回到新增到暫存區後的狀態
* 總之使filename檔案回到最後一次git commit或者git add的狀態一致
* 遠端倉庫
* 遠端倉庫一般選擇github,也就是將程式碼託管到github官網上面
* 首先需要輸入ssh-keygen -t rsa -C '註冊的郵箱地址'
這裡寫圖片描述
* 上面的頁面使用回車就可了,需要記住的是.ssh祕鑰儲存的目錄,找到id_rsa.pub這個檔案
這裡寫圖片描述
* 登入github,選擇setting,找到下面的頁面
這裡寫圖片描述
* 選擇new SSHKey
這裡寫圖片描述
* 這裡新增的是公鑰,通過上面的步驟,就完成了主機和github的通訊,這個通訊通過成通過私鑰簽名,公鑰驗證;
* 對於上面過程的測試
這裡寫圖片描述
* 在主頁選擇start a project,然後按照下面的頁面新增資訊
這裡寫圖片描述
* 上面的資訊可以根據英文提示填寫,一般來說選擇預設的就可以了
* 關聯遠端倉庫,這個關聯操作是電腦關聯遠端倉庫
這裡寫圖片描述
*然後繼續執行,進行關聯操作
這裡寫圖片描述
* 刪除關聯是通過git remote rm origin
* 在將本地檔案推送到遠端倉庫之前,首先應該拉取遠端倉庫的軟體到本地
* 按照第一次的會出錯,因為是兩個無關的歷史
這裡寫圖片描述
* 拉取成功之後的檔案
這裡寫圖片描述
* 然後執行推送命令
這裡寫圖片描述
* 檢視github就會出現新的內容
這裡寫圖片描述
* 如果仍然出錯,就不要在本地庫裡面進行操作,重新建立目錄,然後進行拉取操作;
* 一把來說是先有遠端庫,然後拉去遠端庫到本地;
這裡寫圖片描述
* 拉取到的資料和遠端庫是一樣的,在完成程式碼之後就可以進行提交;
這裡寫圖片描述
*一個特殊檔案.gitignore: 通常來說,試講不需要向遠端倉庫推送的檔名寫到這個檔案裡面;
* 分支管理
* 是為了避免多個人協同開發的時候,出現自己程式碼的錯誤或者未完成,導致別人的程式碼出現錯誤,分支是可以合併的;
* 分支是每個人獨立的,可以進行程式碼的提交等操作,這些並不影響別人在原有的分支上面進行編碼,自己也可以進行程式碼的儲存,在專案的最後進行程式碼的合併;
* 分支的操作:
* 建立分支:
*git branch 分支名
這裡寫圖片描述
* 檢視建立的分支
* git branch
這裡寫圖片描述
* 切換分支
* git checkout 分支名
這裡寫圖片描述
* 建立並且進行切換
* git checkout -b 分支名
這裡寫圖片描述
* 分支的合併,首先需要在master分支上,然後才可以將其他分支上面的資料合併到master上面;

git merge 分支名
  • 如果需要在本地推送,並且建立新的分支使用
git push --set-upstream origin 分支名

這裡寫圖片描述
* 無論是從master還是branch的分支上面拉取的資料,最後本質上都是是master分支,拉取下來之後,可以自己建立自己的分支,最後選擇需要拉取的分支;
這裡寫圖片描述
* 如果多個分支包括主分支都進行了提交操作,並且進行了合併主分支上面的內容會出現混亂,master上面就會顯示每個人的操作,只能夠手動選擇留下那些內容;
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
* 檢視檔案的內容
這裡寫圖片描述
* 這裡需要選擇,是否保留master分支上面的內容
* 檢視分支的合併圖
這裡寫圖片描述
* 分支策略:master分支是十分穩定的,不建議在上面進行修改操作,所有的操作都應該是自己建立的branch上面.需要的時候進行合併操作,應該建立一個dev,用來檢查合併的操作是否是規範的,如果規範,在提交各master

  • 標籤管理
  • 建立標籤
    這裡寫圖片描述
  • git tag 標籤名 commitID:指定commit ID打標籤
  • git tag -a 標籤名 -m '標籤資訊':用於指定標籤資訊
  • git show 標籤名:檢視說明文字
    這裡寫圖片描述
  • git tag -d 標籤名:用於刪除不需要的標籤
  • 切換到標籤v1.0
    這裡寫圖片描述
  • 推送標籤到遠端倉庫
    這裡寫圖片描述
  • 一次性推送本地所有標籤
git push origin --tags
  • 刪除已經推送到遠端的標籤

  • 先本地刪除

git tag -d 標籤名
  • 遠端刪除
git push origin :refs/tags 標籤名

相關文章