git 常規操做彙總

Git 阮老師博文

多帳號配置

ssh-keygen -t rsa -C "A@hotmail.com"
vim ~/.ssh/config
複製代碼

編輯html

Host github
  Host github
  HostName github.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa

Host gitlib
  Host gitlib
  HostName gitlib.com
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/id_rsa_ant
複製代碼

rebase

代碼合併,修改註釋而且合併註釋。產生的結果是分支不產生分叉。git

git rebase origin/master
## 修改衝突
git add .
git rebase --continue
複製代碼
  • You can instead skip this commit: run "git rebase --skip".
  • To abort and get back to the state before "git rebase", run "git rebase --abort".

HEAD

  1. HEAD是上次提交的指針
  2. HEAD^是上上次提交
  3. HEAD@{21}前21次提交
  4. master@{yesterday}昨天對master提交

查看提交

git show commitId | HEAD^
複製代碼

儲藏

git stash
git stash save
# 查看儲藏的東西
git stash list
# 從棧上刪除儲藏
git stash drop stash@{2}
# 應用後當即刪除
git stash pop
複製代碼

reset

工做區(Working directory:checkout) -> 緩存區(Index:git add) -> 提交區(Head:git commit)github

  1. hard:重設index和working directory,從以來在working directory中的任何改變都被丟棄,並把HEAD指向:回到到上次提交。
  2. soft: index和working directory中的內容不做任何改變,僅僅把HEAD指向。自從以來的全部改變都會顯示在git status的「Changes to be committed」中。
    ## 回到git add以後的狀態。
    git reset --soft HEAD^
    複製代碼
  3. mixed:僅重設index,可是不重設working directory。這個模式是默認模式,即當不顯示告知git reset模式時,會使用mixed模式。這個模式的效果是,working directory中文件的修改都會被保留,不會丟棄,可是也不會被標記成「Changes to be committed」,可是會打出什麼還未被更新的報告
    ## 回到git add以前的狀態。
    git reset --mixed HEAD^
    複製代碼

修改提交

  1. 回到某個版本
    git reset --hard commitId | HEAD^
    複製代碼
  2. 修改提交說明
    git commit --amend -m "xxx"
    複製代碼

回滾:針對已經提交或已 merge master

  1. 回滾上次提交
    git revert HEAD
    git push origin master
    複製代碼
  2. 回滾屢次提交
    git reset --hard HEAD^
    git push origin branch -f
    複製代碼

拉取遠程分支

git checkout -b branch origin/branch
複製代碼
相關文章
相關標籤/搜索