玩轉本地
初步添加使用:
初始化一個Git倉庫,使用git init命令
添加文件到Git倉庫,分兩步:
第一步,使用命令git add ,注意,可反覆多次使用,添加多個文件;
第二步,使用命令git commit,完成。(注意,只會提交add了之後的修改)
查看git狀態:
- 要隨時掌握工作區的狀態,使用git status命令。
- 如果git status告訴你有文件被修改過,用git diff可以查看修改內容
- git gui :調出圖形編輯頁面
查看歷史記錄:
歷史記錄,在Git中,我們用git log命令查看:
如果嫌輸出信息太多,看得眼花繚亂的,可以試試加上–pretty=oneline參數:
Git提供了一個命令git reflog用來記錄你的每一次命令:
調出歷史記錄的圖形界面: gitk –all
回退到歷史版本中
回退到上一個版本:
git reset –hard HEAD^回退到上上一個版本:
git reset –hard HEAD^^回退前100個版本:
git reset –hard HEAD~100重置到某個版本:(後面的是提交的log號,使用 git log查看)
git reset –hard 3628164
撤銷你當前的修改:
git checkout其實是用版本庫裏的版本替換工作區的版本,無論工作區是修改還是刪除,都可以“一鍵還原”。
命令git checkout – readme.txt意思就是,把readme.txt文件在工作區的修改全部撤銷,這裏有兩種情況:
一種是readme.txt自修改後還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態;
一種是readme.txt已經添加到暫存區後,又作了修改,現在,撤銷修改就回到添加到暫存區後的狀態。
總之,就是讓這個文件回到最近一次git commit或git add時的狀態。
git reset HEAD file可以把暫存區的修改撤銷掉(unstage),重新放回工作區:
撤銷步驟:
場景1:當你改亂了工作區某個文件的內容,想直接丟棄工作區的修改時,用命令git checkout – file。
場景2:當你不但改亂了工作區某個文件的內容,還添加到了暫存區時,想丟棄修改,分兩步,第一步用命令git reset HEAD file,就回到了場景1,第二步按場景1操作
刪除倉庫中的文件:
git rm用於刪除一個文件
使用遠程
將遠程的代碼獲取到本地倉庫
git fetch將自己的commit放到fetch到的提交記錄的最上面(這樣歷史記錄就是一條直線,便於查看你的History)
git rebase origin master:將遠程倉庫的代碼拉取到本地
git pull- 將本地倉庫的代碼推到遠程倉庫
git push origin master
stash
緩存沒有提交的文件(只有噹噹前的內容還未改完的時候,需要改之前一個版本的bug時,才需要用到stash)
git stash繼續原來的工作
git stash pop,恢復版本號爲stash@{1}的緩存
git stash apply stash@{1}- git show stash@{0} # see the last stash
- git stash list # list stashed changes in this git
tag
- 添加標籤:
git tag -a 0.64.alpha -m “0.64.alpha” 將代碼推到標籤處:
git push origin 0.64.alpha:0.64.alpha給某次歷史提交打上標籤:
git tag -a 0.64.beta -m “0.64.beta ” 47511d966a2f830576f8e3d1fb622322c226a1c4刪除本地標籤:
git tag -d 0.64.beta刪除標籤(在Git v1.7.0 之後)
git push origin –delete tag 0.64.beta
刪除遠程標籤可以把源標籤爲空:
git push origin :refs/tags/標籤名
branch 分支
- 查找自己的分支
git branch 創建分支
git branch branchName切換當前工作環境到某個分支
git checkout branchName合併分支,將branchName合併到當前的分支
git merge branchName
(如果合併的時候出現了衝突,可以使用 git diff 查看衝突的地方,將衝突解決完後,再次commit 就可以了;你也可以直接commit,這時候git會告訴你衝突的文件,並提示commit失敗,只有將衝突解決完成後,commit 才能成功)撤銷合併(合併後的代碼還未提交的情況)
git reset –hard HEAD
-合併後的代碼已經commit了,還是想撤銷
git reset –hard ORIG_HEAD(這條命令很危險,如果你把一個已經被另一個分支合併的分支給刪了,那麼以後再合併相關分支時會出錯.???這句話沒看懂TODO)
刪除已經合併了的分支
git branch -d branchName強制刪除分支,不管這個分支有沒有被合併
git branch -D branchName
常見的git命令
git init
git的初始化
git add .
將代碼加入到本地倉庫中
git status
查看當前本地倉庫的狀態
git diff
查看區別
git reset
重置,可以取消add命令
git checkout
撤銷修改,在還沒有執行add命令前可以將撤銷對代碼的修改
git commit -m “decail of commit”
提交,提交到本地倉庫
git push origin master
將本地倉庫的代碼提交到遠程倉庫中
git remote add origin https://github.com/bigthing33/StudyDemo.git
本地倉庫和一個遠程倉庫建立連接
git fetch origin master
從遠程倉庫中更新代碼,代碼會合併到一個叫origin/master的分支上
git merge origin/master
將origin/master的分支合併到當前分支
git pull origin master
等於上面兩個語句的合併,直接將遠程倉庫合併到本地倉庫
git branch -a
查看分支,帶*表示當前所在分支
git branch version1.0
創建一個分支
git checkout version1.0
切換到一個分支
git merge version1.0
合併指定的分支到當前分支
git branch -D version1.0
刪除一個分支