git入門

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--查看工作區狀態

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章