引言
Git是一款免費、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項目。其核心由工作區(qū)和版本庫(暫存區(qū)+主分支)構(gòu)成:工作區(qū)相當(dāng)于用戶建立的文件夾,暫存區(qū)用來存放用戶添加的修改,主分支負(fù)責(zé)接收用戶最終確定提交的修改。
基本管理
查詢命令幫助
$ git help 命令
配置本機用戶名、郵箱
$ git config --global user.name "用戶名"
$ git config --global user.email "郵箱"
將目錄轉(zhuǎn)換成可被Git管理的倉庫(先要進入該目錄)
$ git init
多次添加多個文件,一次提交(文件需位于Git倉庫目錄下)
$ git add 文檔1
$ git add 文檔2
$ git commit -m "注釋說明"
查看Git倉庫下所有文件的狀態(tài)
$ git status
文件修改比對
$ git diff 文件名 #工作區(qū)與暫存區(qū)
$ git diff HEAD -- 文件名 #工作區(qū)與主分支
查看當(dāng)前分支commit
$ git log
$ git log --pretty=oneline #單行顯示
版本回退
$ git reset --hard [HEAD^|HEAD~n|版本號] #以主分支版本為參照,回退暫存區(qū)與工作區(qū)
$ git reset [HEAD^|HEAD~n|版本號] #以主分支版本為參照,回退暫存區(qū)
$ git reset HEAD 文件名 #以主分支版本為參照,回退暫存區(qū)
$ git checkout -- 文件名 #以最新存儲動作(add或commit)為參照,回退工作區(qū)
查看所有(包括撤銷的)分支commit
$ git reflog
刪除文件
$ git rm 文件名 #講刪除文件提交至?xí)捍鎱^(qū)
$ git commit -m "注釋說明" #正式提交刪除至主分支
遠(yuǎn)程倉庫
創(chuàng)建SSH Key至用戶主目錄
ssh-keygen -t rsa -C "郵箱地址" #私鑰-id_rsa 公鑰-id_rsa.pub
添加遠(yuǎn)程倉庫信息至本地倉庫
$ git remote add 倉庫名 git@[域名|IP]:路徑/遠(yuǎn)程倉庫名.git
$ git remote # 查看本地配置的所有遠(yuǎn)程倉庫名
$ git remote -v # 查看本地配置的所有遠(yuǎn)程倉庫詳情
修改遠(yuǎn)程倉庫名
$ git remote rename 舊名 新名
刪除遠(yuǎn)程倉庫
$ git remote rm 倉庫名
拉取遠(yuǎn)程倉庫至本地倉庫
$ git pull 倉庫名 遠(yuǎn)程分支:本地分支 # master
$ git pull 倉庫名 遠(yuǎn)程分支:本地分支 –-allow-unrelated-histories # 強制合并兩個不相關(guān)倉庫
推送本地倉庫至遠(yuǎn)程倉庫
$ git push -u 倉庫名 本地分支:遠(yuǎn)程分支 #初次關(guān)聯(lián)使用
$ git push 倉庫名 本地分支:遠(yuǎn)程分支 #以后使用
克隆遠(yuǎn)程倉庫至本地
$ git clone git@[域名|IP]:路徑/倉庫名.git #將以倉庫名為名的目錄克隆到當(dāng)前目錄
全局配置相關(guān)操作
$ git config --global -l # 查看全局配置項
$ git config --global --unset key #刪除key所對應(yīng)配置項
Github管理
修改倉庫的編程語言
在根目錄建立.gitattributes文件并寫入:
*.* linguist-language=語言
更多詳情見廖雪峰老師博客:Git教程