git 經常使用操做

git遠程服務器git

  

  git remote add origin <url>緩存

  取消遠程服務器 關聯服務器

  git remote rm 遠程倉庫名 fetch

  更新遠程服務器上的分支列表url

  git remote update 遠程倉庫名 --prune spa

  查看已關聯的遠程服務器指針

  git remote show 日誌

  顯示遠程倉庫與對應服務器地址server

  git remote -v 索引

  拉取遠程倉庫中分支到本地

  git fetch 遠程倉庫名 遠程分支名 本地分支名

 

  強制 推送push 本地版本 到  遠程服務器

  git push --force origin master  將本地master分支強制推送到遠程倉庫origin 

 

 

  將本地的git 倉庫 ,覆蓋遠程倉庫

  1.關聯遠程倉庫  git remote add origin <url> 

  2.推送本地master分支到遠程倉庫,做爲初始結點 git push --force --set-upstream origin master 

 

將本地分支與遠程分支創建關聯

  1.切換到須要關聯的本地分支  git checkout local

  2.與遠程分支創建關聯      git branch -u origin/serverfix 

創建關聯後 

  1 . git push ,git pull 時都不須要加上遠程分支名了,只需先切換到 要進行推送或拉取的 本地分支便可

  2. 能夠刪除遠程服務器上 這個已經關聯的 遠程分支  git push origin --delete 本地關聯分支名

  3. 查看本地與遠程分支 的關聯關係 git branch -vv 

 

版本回退

   一 - HEAD指針,指向最後一次commit的狀態 ;  二 - Index 預計的下一次提交的快照 (暫存區的索引);三 - Working directory 沙盒 (未提交到暫存區和歷史記錄的本地實際代碼)

  git reset 版本號 [filename],默認爲 --mixed模式 ,將 HEAD指針 和 緩存區的代碼   設置爲版本號的狀態

  git reset --soft 版本號  ,僅將HEAD指針 指向版本號

  git reset --hard 版本號 ,將HEAD指針 ,緩存區代碼 和 工做區代碼 全都設置爲 版本號的狀態

  git reset --hard eb43bf file.txt 會將暫存區Index的文件和工做區的文件 狀態變成 eb43bf版本的狀態  

 

   合併中間的過多git log 

  1.將僅 將 git HEAD指針移到倒數第二個須要保存的版本號上  git reset --soft 版本號 

  2. --soft使工做區和緩存區的代碼並未改變,直接提交, git commit  ,

  這時若是原來git log -10 的版本號有 1,2,3,4,5,6,7,8,9,10,而第一步中的版本號爲3,如今git log -3 的顯示則爲 1,2,3,11 ,從而減小了中間的git log .

 

  將本次提交的內容,覆蓋上次提交

  git commit --amend 

  若是上次提交過 git commit -m "commit last" ,而後又進行了修改,git add forgotten-file ,這時 使用 git commit --amend -m "commit second"則使用git log 查看,只有第二次的提交記錄。

 

  撤銷修改

  工做區有修改,還沒提交到緩存區,撤銷工做區的修改  git checkout filename 撤銷指定文件的還沒add 的修改  / git checkout -f 撤消全部還沒add 的修改

  取消最後一次add或commit以後的修改,回到剛剛add或commit後的狀態 git checkout -- filename

  撤銷已經add 還沒commit 的修改 git reset HEAD filename ,將緩存區的文件變爲上次commit時的狀態 

 

  取消對文件跟蹤 

       刪除暫存區中 mysite/__pycache__下的全部文件(保留本地文件夾)

  • git rm -r --cached mysite/__pycache__

  僅取消對某個文件的追蹤(保留本地文件)

  git rm --cached fie.txt

 

   撤銷剛剛的推送到遠程分支

  1.將本地的分支的HEAD 回退 到 須要的版本號

  2.將這個本地的分支強制推送到遠程分支 ,遠程分支的狀態就變爲和本地分支一致。 git push --force 

 

提交

  git commit -am "備註內容「  至關於 git add ,git commit -m "備註內容」兩步 。 不過對於新增長的文件 ,-am 不會添加進去,須要單獨 git add newfile 

 

切換分支

  在當前分支上作出修改後並沒add,這時新建分支並切換過去,而後add,commit,修改就會移到新建分支上了。原分支上再也不有修改的記錄

  git checkout branchname

合併分支

  合併分支前,須要切換到版本號較小的分支上,而後將有更改的分支上的內容合併到當前分支

  git merge brach2

刪除分支

  git branch -d branch3  強制刪除  git branch -D branch3

分支管理

  • 團隊協做中,通常會有一個專門用於彙總各個開發者的遠程倉庫(公開庫)管理者
  • 個個開發者 ,從遠程公共庫拉取基準代碼 ,而後在本地建立分支 ,進行開發
    •   開發完成後,推送到遠程分支
  • 遠程倉庫管理者 ,收到開發者的要求拉取合併遠程分支的請求後,拉取,併合並分支到遠程公開庫

 

查看日誌

  git log --oneline --decorate --graph --all 以圖形簡略的形式顯示全部日誌  

       -n 查看最近的n條日誌

  --oneline 已一行的空間顯示一條日誌

  • git log -p -2 查看最近兩次提交之間的差別
  • --graph 顯示ASCII圖形表示的分支合併歷史
  • --stat 顯示每次更新的文件修改統計信息

 

git diff <filename>

  • 查看文件filename 改動前和改動後的區別
  • diff 即different
  • git diff 版本號1 版本號2 --stat 查看兩個版本中的有差別的文件
  • git diff 版本號1 版本號2 文件路徑 查看兩個版本號間的指定文件的具體差別
  • git diff 分支1 分支2 --stat 查看兩個分支間的有差別的文件
  • git diff 版本號1 版本號2 文件路徑 查看兩個分支間的指定文件的具體差別
  • git diff 文件名 查看當前HEAD指向與工做區間 的文件的具體差別
相關文章
相關標籤/搜索