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
复制代码
相关文章
相关标签/搜索