1. 程式人生 > >Git科普文,Git基本原理&各種騷操作

Git科普文,Git基本原理&各種騷操作

## Git簡單介紹 `Git`是一個分散式版本控制軟體,最初由`Linus Torvalds`創作,於2005年以`GPL`釋出。最初目的是為更好地管理`Linux`核心開發而設計。 ## Git工作流程以及各個區域 ![](https://img.iisheng.cn/git-area.png?01) - Workspace:工作區 - Staging/Index:暫存區 - Local Repository:本地倉庫(可修改) - /refs/remotes:遠端倉庫的引用(不可修改) - Remote:遠端倉庫 ## Git檔案狀態變化 ![](https://img.iisheng.cn/git-file-status.png?01) ## Git各種命令 ### Git簡單命令 ```bash # 在當前目錄新建一個git倉庫 git init # 開啟git倉庫圖形介面 gitk # 顯示所有變更資訊 git status # 刪除所有Untracked files git clean -fd # 下載遠端倉庫的所有更新 git fetch remote # 下載遠端倉庫的所有更新,並且Merge git pull romote branch-name # 檢視上次commit id git rev-parse HEAD # 將指定分支合併到當前分支 git merge branch-name # 將最近的一次commit打包到patch檔案中 git format-patch HEAD^ # 將patch檔案 新增到本地倉庫 git am patch-file # 檢視指定檔案修改歷史 git blame file-name ``` ### Git常用命令 #### git clone ```bash # 將遠端git倉庫克隆到本地 git clone url # 將遠端git倉庫克隆到本地 git clone -b branch url ``` #### git stash ```bash # 將修改過,未add到Staging區的檔案,暫時儲存起來 git stash # 恢復之前stash儲存的內容 git stash apply # 儲存stash 並寫message git stash save "stash test" # 檢視stash了哪些儲存 git stash list # 將stash@{1}儲存的內容還原到工作區 git stash apply stash@{1} # 刪除stash@{1}儲存的內容 git stash drop stash@{1} # 刪除所有快取的stash git stash clear ``` #### git config ```bash # 配置git圖形介面編碼為utf-8 git config --global gui.encoding=utf-8 # 設定全域性提交程式碼的使用者名稱 git config --global user.name name # 設定全域性提交程式碼時的郵箱 git config --global user.email email # 設定當前專案提交程式碼的使用者名稱 git config user.name name ``` #### git remote ```bash # 顯示所有遠端倉庫 git remote -v # 增加一個新的遠端倉庫 git remote add name url # 刪除指定遠端倉庫 git remote remove name # 獲取指定遠端倉庫的詳細資訊 git remote show origin ``` #### git add ```bash # 新增所有的修改到Staging區 git add . git add --all # 新增指定檔案到Staging區 git add file # 新增多個修改的檔案到Staging區 git add file1 file2 # 新增修改的目錄到Staging區 git add dir # 新增所有src目錄下main開頭的所有檔案到Staging區 git add src/main* ``` #### git commit ```bash # 提交Staging區的程式碼到本地倉庫區 git commit -m "message" # 提交Staging中在指定檔案到本地倉庫區 git commit file1 file2 -m "message" # 使用新的一次commit,來覆蓋上一次commit git commit --amend -m "message" # 修改上次提交的使用者名稱和郵箱 git commit --amend --autho