Git使用筆記

在ubuntu 14.04上安裝   

sudo apt-get install git

安裝用到的依賴或工具   

sudo apt-get install git-doc git-svn git-email git-gui gitk

第一次使用前的配置     

git config --global user.name "Elvin"

git config --global user.email "[email protected]"

創建一個倉庫(文件夾),並初始化倉庫

mkdir -p /home/elvin/git_test

cd /home/elvin/git_test

git init


創建或修改一個文件

sudo touch test.txt

把文件加入暫存區

git add test.txt

提交文件到現在的分支中

git commit -m "a first test file"

查看當前分支的日誌文件

git log

只顯示各提交版本的commit id

git log --pretty=oneline

回退到上一個版本

git reset --hard HEAD^

git reset --hard 3628164

查詢各版本號

git reflog

查詢上一個已提交版本與當前文件間的差別

git diff HEAD -- readme.txt


撤銷已修改的工作區文件到上一次暫存或者上一個版本

git checkout -- readme.txt

撤銷已放入暫存區文件到工作區

git reset HEAD readme.txt

對於add入暫存區的文件,若誤刪除了,要恢復也可以

git checkout -- readme.txt

若是真正需要刪除,刪除後需要

git rm readme.txt

git commit -m "remove readme.txt"


創建SSH Key

ssh-keygen -t rsa -C "[email protected]"

在用戶主目錄的.ssh目錄中,id_rsa爲私匙,id_ras.pub爲公匙

公匙內容貼到GitHub Account setting內的SSH Keys頁面中,完成SSH Key的關聯

關聯本地庫和遠程庫

git remote add origin [email protected]:elvinsys/git_test.git

把本地庫內容推送到遠程庫(前提是遠程庫爲空庫,此爲第一次本地推到遠程)

git push -u origin master

以後的推送方式直接用

git push origin master

從遠程庫克隆鏡像到本地

git clone [email protected]:elvinsys/git_test.git

(關於地址

https://github.com/elvinsys/git_test.git  爲https協議

[email protected]:elvinsys/git_test.git      爲ssh協議


(在win7-64bit的安裝和使用)

安裝包從https://git-for-windows.github.io 下載,下載後打開Git Bash進行操作

配置user.name和email,創建倉庫目錄,初始化倉庫

生成ssh key,ssh-keygen -t rsa -C "email(並不是遠程的email,而是本地的email"

在本地目錄下生成了兩個文件,爲XXX和XXX.pub,

把他們扔到~/.ssh裏,並改名爲id_rsa和id_rsa.pub(重要)

把id_rsa.pub的內容貼到github上就可以準備克隆拉數據了!



顯示分支

git branch

創建分支

git branch new-branch

刪除分支

git branch -d new-branch

強制刪除分支

git branch -D new-branch

切換分支

git checkout new-branch

創建並切換到剛創建的分支上(等同於  git branch new-branch  再  git checkout new-branch)

git branch -b new-branch

合併某分支到當前分支

git merge new-branch

對於產生的分支衝突(branch conflict)只能手動修改後才能正常合併

帶可視化圖形log命令

git log --graph --pretty=oneline --abbrev-commit

爲了避免Fast Forward模式所造成的分支信息丟失的情況,可以通過禁用ff模式來合併分支

git merge --no-ff -m "merge with no-ff" new-branch

在非正式版master分支的工作分支上開發途中,通過保存現場,可臨時切換到其他分支進行其他的工作

git stash

git checkout other-branch

當在其他分支工作完成後,可切回原先的分支,查看stash列表後,恢復現場,回覆後要刪除

git checkout now-branch

git stash list

git stash apply

git stash drop

(或者git stash pop,效果相等於先apply,然後自動drop)


(關於多人協作)

A君把master和dev兩個分支push上github

git push origin master

git push origin dev

B君要把dev從服務器上拉下拉,先把現在的工作分支另起一分支,刪掉原分支,再拉數據

git checkout -b dev_tmp

git branch -d dev

git fetch

git checkout -b dev origin/dev

修改後在push上github


對當前分支版本打新標籤

git tag v1.0

查看所有的標籤

git tag

對以往某個版本打新標籤,要先查到那個版本的commit id

git tag v1.0 62e6714

打標籤的同時,通過加入 -a -m 選項指定標籤名和說明文字

git tag -a v1.0 -m "merge two files"

跳到某標籤處,和查找commit id一樣

git reset --hard v1.0

推送某個標籤到遠程

git push origin v1.0

推送所有標籤到遠程

git push origin --tag

刪除本地標籤

git tag -d v1.0

刪除遠程標籤,要先刪除本地的

git tag -d v1.0

git push origin :refs/tags/v1.0


讓Git顯示顏色

git config --global color.ui true


讓Git忽略一些無需關注的文件,例如編譯後生成的中間文件,如:*.o 

在工作去創建特殊文件.gitignore,把需要忽略的文件格式填進去。

(配置文件可從https://github.com/github/gitignore下載)

添加被.gitignore忽略的文件

git add -f test.o

檢查.gitignore中的規則

git check-ignore -v test.o


配置git status命令的別名爲git st

git config --global alias.st status


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