簡介:Git 是一個開源的分布式版本控制系統,用于靈活高效地處理任何或小或大的項目
工作流程圖:
git的工作區:
工作區:就是你在電腦裡能看到的目錄(本地倉庫、即項目目錄)
暫存區:英文叫stage, 或index。一般存放在 “.git目錄下” 下的index檔案(.git/index)中,是以我們把暫存區有時也叫作索引(index)。
版本庫:工作區有一個隐藏目錄.git,是Git的版本庫。
一、git config指令
因為Git是分布式版本控制系統,是以,每個機器都必須自報家門:你的名字和Email位址。注意
git config
指令的–global參數,用了這個參數,表示你這台機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名和Email位址,使用者名和郵箱都會存到使用者主目錄下的“.gitconfig”檔案中
git config --global user.name "Lntower"
git config --global user.email "[email protected]"
二、初始化版本倉庫
進去到你的項目目錄下,右鍵點選運作Git Bash Here,該視窗下運作
git init
,指定目前目錄為git本地倉庫
三、送出檔案
将要送出到倉庫的檔案使用
git add
指令可将該檔案添加到緩存,執行
git commit
将緩存區内容添加到倉庫中。
送出到緩存中:
git add
送出到版本倉庫,-m參數表示送出的資訊:
git commit -m "第一次送出"
檢視狀态:
git status
五一休假回來上班,已經記不清上次怎麼修改的readme.txt,需要用git diff這個指令看看:
git diff readme.txt
四、版本復原
檢視送出曆史:
git log --pretty=oneline、git reflog
退回到上一個版本:
git reset --head HEAD^
退回到某一個版本:
git reset --head 版本id
、
五、撤銷修改
讓這個檔案回到最近一次git commit或git add時的狀态:
git checkout -- readme.md
注意:git checkout – file指令中的–很重要,沒有–,就變成了“切換到另一個分支”的指令
把暫存區的修改撤銷掉重新放回工作區:
git reset HEAD readme.md
是删錯了從版本庫裡誤删的檔案恢複到最新版本:
git checkout -- test.txt
六、遠端倉庫
建立SSH Key,裡面有id_rsa和id_rsa.pub兩個檔案,id_rsa是密鑰,id_rsa.pub是公鑰,在遠端倉庫中用公鑰就行
SSH Key:
ssh-keygen -t rsa -C "郵箱位址"
Linux:生成的.ssh檔案,root使用者在/root目錄下,普通使用者在/home
windows:生成的.ssh檔案,在使用者目錄下
已有的本地倉庫與遠端倉庫關聯:
git remote add origin 遠端倉庫的ssh連結
送出遠端倉庫(master是分支名):
git push origin master
七、git clone克隆遠端倉庫
在某個檔案夾下,執行
git clone 遠端倉庫位址
主要這裡隻能克隆主分支的遠端倉庫,如果想克隆其它分支的倉庫要執行另外一條指令,
git checkout -b dev origin/dev
git checkout -b dev 表示建立dev分支,origin/dev的dev表示是遠端倉庫中的分支名
八、分支管理(有個,并且顔色是綠色的是目前分支))*
檢視分支:
git branch
建立分支:
git branch 分支名
切換分支:
git checkout 分支名 或者 git switch 分支名
建立+切換分支:
git checkout -b 分支名
合并到某個分支到目前分支:
git merge 分支名
檢視分支合并圖:
git log --graph
删除分支:
git branch -d 分支名
九、Git分支管理及命名規範
分支 | 命名 | 說明 |
---|---|---|
主分支 | master | 主分支,提供給使用者使用的正式版本,都在這個主分支上釋出 |
開發分支 | dev | 開發分支,永遠是功能最新最全的分支 |
功能分支 | feature-* | 新功能分支,某個功能點正在開發階段 |
修複分支 | release-* | 釋出定期要上線的功能 |
釋出版本 | bug-* | 修複線上代碼的 bug |
将 Dev 分支釋出到 Master 分支的指令:
切換到 Master 分支:
git checkout master
對 Dev 分支進行合并:
git merge –no–ff dev
–no–ff參數是什麼意思
。預設情況下,Git執行”快進式合并”(fast-farward merge),會直接将 Master 分支指向 Dev 分支。
使用–no–ff參數後,會執行正常合并,在 Master 分支上生成一個新節點。