git的安裝
1.直接從終端運行命令(Ubuntu)進行安裝,版本可能不是最新的
sudo apt-get install git
2.在官網下載源代碼編譯安裝,參考目錄下的INSTALL文件,下載地址
make prefix=/usr/local all
sudo make prefix=/usr/local install
3.從git版本庫克隆安裝
git clone git://git.kernel.org/pub/scm/git/git.git
cd git
git fetch #更新
git clean -fdx
git reset --hard #清理工作
git tag #顯示一個版本號,比如v1.8.4
git checkout v1.8.4
make prefix=/usr/local all
sudo make prefix=/usr/local install
git簡介
git是一個版本控制系統,git的工作目錄由工作區、暫存區(stage)、版本庫三部分構成,工作區就是存放代碼的根目錄,暫存區和版本庫都是隱藏在.git目錄中的數據文件中,用相關命令查看其屬性。
git配置
git config --global user.name "test"
git config --global user.email [email protected]
git config --global color.ui true
git基本操作
git init--工作目錄的初始化,創建.git文件夾等
mkdir workspace
cd workspace
git init
或者
git init workspace
cd workspace
git add--將工作目錄中的改動添加到暫存區中,可以git help add 查看詳細幫助
git add . 把本地所作的更改添加到暫存區中
git add -u 只有被追蹤的本地文件所作的更改添加到暫存區中,當刪除/移動文件時用這條命令比較合適
git add -A 把本地文件所有的更改添加到暫存區中,無論文件是否被追蹤,適用於添加/刪除/移動文件
git add -f 強制添加被忽略的文件
git commit--將暫存區中的更改提交到版本庫中,git commit之前應該git add
git commit -m "Fisrt commit, git init."
git commit -a -m "Second commit without git add." 加上-a選項,提交之前不必再執行git add
git 查看操作
git status-- 查看工作區的狀態
git status -s #文件名之前會有M/A等縮寫,如果M在第一列,代表版本庫與暫存區文件對比有改變,M在第二列時,代表暫存區與工作區有改變
git log--查看提交記錄
git log --oneline #以簡單模式查看提交記錄
git diff--查看工作區/暫存區/版本庫之間的差別
git diff #查看暫存區與工作區之間的差別
git diff --cached #查看暫存區與版本庫之間的差別
git ls-file--查看暫存區文件
git ls-files -v #查看暫存區文件
git ls-files --with-tree=HEAD^ #查看最近一次提交到版本庫中的文件
git cat-file -p--查看文件內容,以及恢復個別文件
git cat-file -p HEAD^:file.txt #查看版本庫中某個文件的內容
git cat-file -p HEAD^:file.txt > file.txt #從版本庫中恢復某個被誤刪除的文件
git修改操作
git mv--移動或者重命名一個文件/目錄/符號鏈接
git rm--從工作區和暫存區刪除一個文件
git rm #同時刪除工作區和暫存區的文件,rm只是刪除工作區中的文件(沒有真正的刪除,以後提交到版本庫這個文件還是存在)
.gitignore文件--忽略文件規則,git add時不會添加到暫存區(.gitignore可以放置在任何文件夾下,作用範圍是所處目錄以及子目錄)
*~ #忽略vim備份文件
*.swp #忽略vim緩存文件
*.o #忽略編譯文件
git保存/恢復操作
git checkout--檢出分支到工作區(默認對暫存區進行操作)
git checkout #彙總顯示工作區暫存區與HEAD的差異
git checkout --filename #用暫存區中過的filename覆蓋工作區中的filename
git checkout . #在工作區中取消相對於暫存區中的所有更改
git reset--重置當前HEAD到指定的狀態(默認對HEAD進行操作)
git reset [HEAD] #用HEAD指向的目錄樹重置暫存區,工作區不受影響,相當於撤銷git add所作的更改
git reset --filename #git add filename 的反向操作
git reset --soft HEAD^ #暫存區和工作區不變,引用向前回退一次,以便git commit 從新提交
git reset HEAD^ #工作區不變,暫存區和引用回退到上一次提交之前
git reset --hard HEAD^ #引用回退一次,暫存區和工作區回退到上一次提交之前
git stash--保存工作區中的進度
git stash list--顯示保存的進度
git stash pop--恢復保存的進度
git stash apply --可以多次恢復保存的進度
git tag--創建里程碑
總結:
git init--初始化
git add--把工作區的更改添加到暫存區
git commit--把暫存區的更改提交到版本庫
git reset--操作HEAD,影響(重置)暫存區
git checkout--操作暫存區,影響(重置)工作區
git status--查看工作區狀態