無標題文章

初始化配置

C代碼 收藏代碼

配置使用git倉庫的人員姓名

git config --global user.name "Your Name Comes Here"

配置使用git倉庫的人員email

git config --global user.email you@yourdomain.example.com

配置到緩存 默認15分鐘

git config --global credential.helper cache

修改緩存時間

git config --global credential.helper 'cache --timeout=3600'

git config --global color.ui true
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor "mate -w" # 設置Editor使用textmate
git config -1 #列舉所有配置

用戶的git配置文件~/.gitconfig

查看、添加、提交、刪除、找回,重置修改文件
C代碼 收藏代碼
git help <command> # 顯示command的help
git show # 顯示某次提交的內容
git show $id

git co -- <file> # 拋棄工作區修改
git co . # 拋棄工作區修改

git add <file> # 將工作文件修改提交到本地暫存區
git add . # 將所有修改過的工作文件提交暫存區

git rm <file> # 從版本庫中刪除文件
git rm <file> --cached # 從版本庫中刪除文件,但不刪除文件

git reset <file> # 從暫存區恢復到工作文件
git reset -- . # 從暫存區恢復到工作文件
git reset --hard # 恢復最近一次提交過的狀態,即放棄上次提交后的所有本次修改

git ci <file>
git ci .
git ci -a # 將git add, git rm和git ci等操作都合并在一起做
git ci -am "some comments"
git ci --amend # 修改最后一次提交記錄

git revert <$id> # 恢復某次提交的狀態,恢復動作本身也創建了一次提交對象
git revert HEAD # 恢復最后一次提交的狀態

查看文件diff

git diff <file> # 比較當前文件和暫存區文件差異
git diff
git diff <$id1> <$id2> # 比較兩次提交之間的差異
git diff <branch1>..<branch2> # 在兩個分支之間比較
git diff --staged # 比較暫存區和版本庫差異
git diff --cached # 比較暫存區和版本庫差異
git diff --stat # 僅僅比較統計信息

查看提交記錄

git log
git log <file> # 查看該文件每次提交記錄
git log -p <file> # 查看每次詳細修改內容的diff
git log -p -2 # 查看最近兩次詳細修改內容的diff
git log --stat #查看提交統計信息

tig
Mac上可以使用tig代替diff和log,brew install tig

初始化一個版本倉庫

git init

Clone遠程版本庫

git clone git@xbc.me:wordpress.git

添加遠程版本庫origin,語法為 git remote add [shortname] [url]

git remote add origin git@xbc.me:wordpress.git

查看遠程倉庫

git remote -v

添加當前修改的文件到暫存區

git add .

如果你自動追蹤文件,包括你已經手動刪除的,狀態為Deleted的文件

git add -u

提交你的修改

git commit –m "你的注釋"

推送你的更新到遠程服務器,語法為 git push [遠程名] [本地分支]:[遠程分支]

git push origin master

查看文件狀態

git status

跟蹤新文件

git add readme.txt

從當前跟蹤列表移除文件,并完全刪除

git rm readme.txt

僅在暫存區刪除,保留文件在當前目錄,不再跟蹤

git rm –cached readme.txt

重命名文件

git mv reademe.txt readme

查看提交的歷史記錄

git log

修改最后一次提交注釋的,利用–amend參數

git commit --amend

忘記提交某些修改,下面的三條命令只會得到一個提交。

git commit –m "add readme.txt"
git add readme_forgotten
git commit –amend

假設你已經使用git add .,將修改過的文件a、b加到暫存區

現在你只想提交a文件,不想提交b文件,應該這樣

git reset HEAD b

取消對文件的修改

git checkout –- readme.txt

查看、切換、創建和刪除分支
C代碼 收藏代碼
git br -r # 查看遠程分支
git br <new_branch> # 創建新的分支
git br -v # 查看各個分支最后提交信息
git br --merged # 查看已經被合并到當前分支的分支
git br --no-merged # 查看尚未被合并到當前分支的分支

git co <branch> # 切換到某個分支
git co -b <new_branch> # 創建新的分支,并且切換過去
git co -b <new_branch> <branch> # 基于branch創建新的new_branch

git co $id # 把某次歷史提交記錄checkout出來,但無分支信息,切換到其他分支會自動刪除
git co $id -b <new_branch> # 把某次歷史提交記錄checkout出來,創建成一個分支

git br -d <branch> # 刪除某個分支
git br -D <branch> # 強制刪除某個分支 (未被合并的分支被刪除的時候需要強制)

分支合并和rebase
C代碼 收藏代碼
git merge <branch> # 將branch分支合并到當前分支
git merge origin/master --no-ff # 不要Fast-Foward合并,這樣可以生成merge提交

git rebase master <branch> # 將master rebase到branch,相當于:
git co <branch> && git rebase master && git co master && git merge <branch>

Git補丁管理(方便在多臺機器上開發同步時用)

git diff > ../sync.patch # 生成補丁
git apply ../sync.patch # 打補丁
git apply --check ../sync.patch #測試補丁能否成功

Git暫存管理

git stash # 暫存
git stash list # 列所有stash
git stash apply # 恢復暫存的內容
git stash drop # 刪除暫存區

Git遠程分支管理
C代碼 收藏代碼
git pull # 抓取遠程倉庫所有分支更新并合并到本地
git pull --no-ff # 抓取遠程倉庫所有分支更新并合并到本地,不要快進合并
git fetch origin # 抓取遠程倉庫更新
git merge origin/master # 將遠程主分支合并到本地當前分支
git co --track origin/branch # 跟蹤某個遠程分支創建相應的本地分支
git co -b <local_branch> origin/<remote_branch> # 基于遠程分支創建本地分支,功能同上

git push # push所有分支
git push origin master # 將本地主分支推到遠程主分支
git push -u origin master # 將本地主分支推到遠程(如無遠程主分支則創建,用于初始化遠程倉庫)
git push origin <local_branch> # 創建遠程分支, origin是遠程倉庫名
git push origin <local_branch>:<remote_branch> # 創建遠程分支
git push origin :<remote_branch> #先刪除本地分支(git br -d <branch>),然后再push刪除遠程分支

基本的分支管理

創建一個分支

git branch iss53

切換工作目錄到iss53

git chekcout iss53

將上面的命令合在一起,創建iss53分支并切換到iss53

git chekcout –b iss53

合并iss53分支,當前工作目錄為master

git merge iss53

合并完成后,沒有出現沖突,刪除iss53分支

git branch –d iss53

拉去遠程倉庫的數據,語法為 git fetch [remote-name]

git fetch

fetch 會拉去最新的遠程倉庫數據,但不會自動到當前目錄下,要自動合并

git pull

查看遠程倉庫的信息

git remote show origin

建立本地的dev分支追蹤遠程倉庫的develop分支

git checkout –b dev origin/develop

Git遠程倉庫管理

git remote -v # 查看遠程服務器地址和倉庫名稱
git remote show origin # 查看遠程服務器倉庫狀態
git remote add origin git@ github:robbin/robbin_site.git # 添加遠程倉庫地址
git remote set-url origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址(用于修改遠程倉庫地址)
git remote rm <repository> # 刪除遠程倉庫

創建遠程倉庫

git clone --bare robbin_site robbin_site.git # 用帶版本的項目創建純版本倉庫
scp -r my_project.git git@ git.csdn.net:~ # 將純倉庫上傳到服務器上

mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服務器創建純倉庫
git remote add origin git@ github.com:robbin/robbin_site.git # 設置遠程倉庫地址
git push -u origin master # 客戶端首次提交
git push -u origin develop # 首次將本地develop分支提交到遠程develop分支,并且track
git remote set-head origin master # 設置遠程倉庫的HEAD指向master分支

也可以命令設置跟蹤遠程庫和本地庫

git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.設置 初次使用需要設置姓名和郵箱git config --global user.name "git用戶名"g...
    jrg陳咪咪sunny閱讀 768評論 0 1
  • http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.ht...
    yuditxj閱讀 170評論 0 0
  • 9月18日騰訊獨播的《使徒行者2》,第一集就是在表現航拍鏡頭鏡頭下泰國風光,身在泰國臥底的香港警察小組跨境偵...
    導演宋健君閱讀 302評論 0 0
  • 我是真的付出我的愛 愛要大聲說出來,你不說我怎么知道呢。這是我看完這集故事最先想到了話。 盧明進大學是學室內設...
    yi說閱讀 1,174評論 0 1
  • 都怪當初年紀小。天天就知玩電腦。。。 一天到晚沒正事。四處溜達滿街跑。。。 夜里三更還在吵。早上睜眼要遲到。。。 ...
    一首老歌丶閱讀 124評論 0 0