Ubuntu系統中Git客戶端的安裝及使用教程
安裝git
sudo apt-get install git
git config命令的--global引數,用了這個引數,表示你這臺機器上所有的Git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和Email地址
git config --global user.name "Your name"
git config --global user.email "[email protected]"
建立版本庫repository
首先找一個地方,建立一個空目錄,然後使用git init 命令
git init
將檔案放到建好的倉庫目錄下使用如下命令
用add將檔案新增到倉庫
git add filename
用commit告訴git, 把檔案提交到倉庫
git commit -m "input something "
git commit命令執行成功後會告訴你,檔案被改動的情況。commit可以一次提交很多檔案
檢視倉庫歷史
git status命令可以讓我們時刻掌握倉庫當前的狀態
git status
git diff filename 可以檢視該檔案時如何被修改的
版本回退
用git log 命令檢視歷史記錄
git reset --hard +版本號
其中**HEAD表示當前版本,HEAD^表示上一個版本,HEAD^^表示上上一個版本 也可寫成HEAD~100上一百個版本。版本號不用全寫,寫前幾位就行。git會自動幫你找到
用git reflog 可以檢視你每一次的操作記錄
撤銷修改
使用
git checkout --xxx.txt
命令git checkout -- readme.txt意思就是,把readme.txt檔案在工作區的修改全部撤銷,這裡有兩種情況:
一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經新增到暫存區後,又作了修改,現在,撤銷修改就回到新增到暫存區後的狀態。
總之,就是讓這個檔案回到最近一次git commit或git add時的狀態
使用git reset HEAD +filename可以把暫存區的修改撤銷掉,重新放回工作區。git reset命令既可以回退版本,也可以把暫存區的修改撤銷掉
刪除檔案
** 使用git rm filename**刪除檔案
若刪錯了,可用 git checkout -- filename進行恢復
檢視、切換、建立和刪除分支
git br -r # 檢視遠端分支
git br# 建立新的分支
git br -v # 檢視各個分支最後提交資訊
git br --merged # 檢視已經被合併到當前分支的分支
git br --no-merged # 檢視尚未被合併到當前分支的分支
git co# 切換到某個分支
git co -b# 建立新的分支,並且切換過去
git co -b# 基於branch建立新的new_branch
git co $id # 把某次歷史提交記錄checkout出來,但無分支資訊,切換到其他分支會自動刪除
git co $id -b# 把某次歷史提交記錄checkout出來,建立成一個分支
git br -d# 刪除某個分支
git br -D# 強制刪除某個分支 (未被合併的分支被刪除的時候需要強制)
分支合併和rebase
git merge# 將branch分支合併到當前分支
git merge origin/master --no-ff # 不要Fast-Foward合併,這樣可以生成merge提交
git rebase master# 將master rebase到branch,相當於:
git co&& git rebase master && git co master && git merge
Git暫存管理
git stash # 暫存
git stash list # 列所有stash
git stash apply # 恢復暫存的內容
git stash drop # 刪除暫存區
遠端倉庫
建立SSH key
ssh-keygen -t rsa -C "[email protected]"
如果一切順利的話,可以在使用者主目錄裡找到.ssh目錄,裡面有id_rsa和id_rsa.pub兩個檔案,這兩個就是SSH Key的秘鑰對,id_rsa是私鑰,不能洩露出去,id_rsa.pub是公鑰,可以放心地告訴任何人
登陸GitHub,開啟“Account settings”,“SSH Keys”頁面:
然後,點“Add SSH Key”,填上任意Title,在Key文字框裡貼上id_rsa.pub檔案的內容
將本地倉庫推送到GitHub倉庫
git remote add origin [email protected]:pastqing/wangdao.git
git push -u origin mastercd
由於遠端庫是空的,我們第一次推送master分支時,加上了-u引數,Git不但會把本地的`master分支內容推送的遠端新的master分支,還會把本地的master分支和遠端的master分支關聯起來,在以後的推送或者拉取時就可以簡化命令
此後,每次本地提交後,只要有必要,就可以使用命令git push origin master推送最新修改
從遠端倉庫克隆
git clone [email protected]:pastqing/wangdao.git
檢視提交記錄
git log
git log# 檢視該檔案每次提交記錄
git log -p# 檢視每次詳細修改內容的diff
git log -p -2 # 檢視最近兩次詳細修改內容的diff
git log --stat #檢視提交統計資訊