git常用命令彙總

針對常用的git命令,進行彙總記錄,以便及時查詢

git 使用總結:

將服務端拉到本地:
git clone http://wfw……name.git .
最後一個點是拉到本地哪個目錄,如果不寫,則在當前目目錄下建一個name的目錄來放此git的本地副本
git pull
拉取最新的代碼狀態

———————分支———
git branch
列出所有分支,帶*的爲當前分支
git branch -d
嘗試刪除不用的分支,如果分支未合併,則不會刪除
git branch -D
刪除分支,未合併也刪除
git branch abc
創建一個abc分支
git checkout abc 切換到abc分支
git checkout  origin/master -b  test 用master創建一個test分支,即:抓取服務器上指定分支到本地

git push origin  test 分支提交到服務器
git branch -av    查看服務器分支執行前,要先拉取最新的代碼狀態:git pull
git push origin :testbranch 將本地刪除的分支,提交到服務器
————————提交—————
git add -A
添加本地所有新增文件
git commit -a
提交所有到倉庫,直接提交,省去add但新增的文件夾另不進來
git diff 顯示本地所有文件修改的變化情況。    git push 將本地當前分支的代碼全部提交到服務器上的所有分支
git rebase -i 版本ID,修改此版本ID後面提交的提交情況


當你提交的代碼後,管理員發現,您的代碼不能提交到服務器上,主要原因在於,你的 commit 中和服務器中的有些commit不再同一時間軸上,即:你的有些commit要插入到服務器中的某些commit之間,這樣就會造成代碼的衝突。所以這個 時候就要使用git rebase。
 假如,你平時使用的分支叫 new ,然後在這個分支上你剛提交過幾個commit。
 做法:
1.新建一個分支,並且代碼和服務器中代碼同步
   git checkout origin/v2.0 -b temp  
2.爲了保證新建的temp分支代碼是最新的,可以多執行下面一步
  git pull
3.當你新建分支後,系統會自動checkout到temp分支上,此時
  git checkout  new
4.合併代碼,並整理
  git rebase  temp  //會將temp分支的代碼合並過來,並按照提交的順序排序
5.  因爲順序是重新整理的,所以肯定會出現衝突
6.解決衝突,最後 git add * ,但不許要git commit
7.解決後,執行 git rebase --continue
8.重新提交代碼: git push for-*



————————git 棧—————————
git stash 保存當前工作區內容,然後把最近一次的提交的代碼抓到本地以便修改緊急需求

git stash list 列出總共有多少次臨時保存記錄
git stash pop 將工作區恢復到最近一次臨時保存前狀態(臨時更改完成後,commit後進行操作)
git stash apply 將某一次的Git棧,恢復
git stash clear 將棧清空

————————配置
git config user.name
git config user.email
必須要與服務器上的一至,如果不一至,則要修改,但commit過的需要使用以下命令把已經提交的記錄修改過來:
git commit --amend --author=“XXX <[email protected]>"
git commit  --amend --reset-author 重新定義提交者的帳號信息,有時改了user的信息,提交還是不行,用這個就可以了

git log
顯示所有修改日誌
git checkout . && git clean -xdf
刪除本次所有改動,把當前內容還原到上次push的狀態。

———————版本比較
git diff 顯示工作目錄與索引區文件之間的差異
git diff --cached 顯示索引區與git倉庫之間的差異
git diff HEAD 顯示工作目錄與git倉庫之間的差異
git diff HEAD^ 比較上次提交
git diff HEAD~2 比較上2次提交
git diff <branch1> <branch2> 在兩個分支之間比較
git diff <id1> <id2> 比較兩次提交之間的差異

抓取服務器上指定分支
git checkout -b staging origin/staging

——————————簡寫命令
vi ~/.gitconfig
添加下面的內容
[alias]
    co = checkout
    ci = commit
    s = status
    pl = pull
    ps = push
    d = diff
    dt = difftool
    dt = difftool
    l = log --stat
    cp = cherry-pick
    ca = commit -a
    b = branch
    ac = commit -a -m
    conl = git checkout production
    online = pull origin production
用法如 在production分支下時,執行拉最新代碼 git online  

代碼語法檢查,

可以定一個腳本,檢查語法錯誤的,或是借用第三方工作進行檢查,然後將該腳本放到項目的 .git/hook/pre-commit 位置,也可以放到一個位置軟鏈到多個項目 git/hook/pre-commit 中,這時,在提交時,會檢查語法規範,提高代碼質量。



windows中的換行符爲 CRLF, 而在Linux下的換行符爲LF,

所以在執行add . 時出現提示:warning: LF will be replaced by CRLF

解決辦法:


  1. $ git config --global core.autocrlf false  //禁用自動轉換    



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