Git命令行纪要

windows配置用户名和密码

git config --global user.name "Your Name"
git config --global user.email "email@example.com"

windows创建ssh秘钥 ssh-keygen -t rsa -C "email@example.com"

基本操作

初始化repo git init

查看工作区文件状态 git status

将文件添加到暂存区 git add your file

stage

暂存区的意义 : 分批、分阶段递交,进行快照,便于回退

将文件从暂存区提交到分支 git commit -m "your tips"

查看已提交的历史记录 git log

简化历史记录 git log --pretty=oneline

回退到上一个版本 git reset --hard HEAD^

HEAD指向的是现在使用中的分支的最后一次更新

回退到任意版本 git reset --hard version commit id(可截取前六个)

找回版本commit id git reflog

工作区或暂存区回退到最近更改 git checkout -- your file

删除工作区的文件 git rm your file

删除版本库里的文件 git rm your file + git commit -m "delete file"

本地关联远程库 git remote add origin your repo url

本地推送到远程库 git push origin master

首次推送添加-u 将本地的master分支和远程的master分支关联起来

从远程库克隆 git clone your repo url

显示远程库 git remote

本地拉取远程库的代码 git pull origin master

查看远程库的修改 git fetch origin master

pull = fetch + merge

分支部分

分支区分为Merge分支Topic分支

  1. Merge分支是为了可以随时发布release而创建的分支,可作为Topic分支的源分支使用
  2. Topic分支是为了开发新功能或修复Bug等任务而建立的分支
  3. Topic分支是从稳定的Merge分支创建的。完成作业后,要把Topic分支合并回Merge分支

创建分支 git branch branch name

切换分支 git checkout branch name

创建分支和切换分支简洁写法 git checkout -b branch name

查看当前分支 git branch

删除分支 git branch -d branch name

分支合并以及冲突处理

分支合并分为mergerebase

  1. 使用merge可以合并多个历史记录的流程,会保持修改内容的历史记录,但是历史记录会很复杂
  2. 历史记录简单,是在原有提交的基础上将差异内容反映进去。
    因此,可能导致原本的提交内容无法正常运行。

合并merge分支

  1. 主分支合并子分支 git merge branch name

若是多个分支并行操作用merge方式合并的话需要手动更改冲突部分

分支rebase合并

  1. 子分支请求rebase主分支git rebase master
  2. 若是多个分支并行,修改冲突
  3. 添加子分支的更改文件到暂存区 git add your file
  4. 提交更改不能用commit提交 git rebase --continue
  5. 切换到主分支 git checkout master
  6. 合并子分支 git merge branch name

标签

Git可以使用2种标签

  1. 轻标签 ,为了在本地暂时使用或一次性使用。
  2. 注解标签 ,发布标签是采用注解标签来添加注解或签名的

添加轻标签 git tag tag name

显示标签列表 git tag

添加注解标签以及添加注解 git tag -am "your tips" tag name

显示标签列表和标签注解 git tag -n

删除标签 git tag -d tagname

提交操作

以下对于提交操作的修改在添加命令后都会在命令行编辑工具中进行编辑才会生效

  1. 修改最近一次的提交备注 git commit --amend
  2. 取消最近一次的提交 git revert HEAD
  3. 舍弃最近的提交 git reset --hard HEAD~ 等同于上面的版本回退
  4. 对于上面git reset 操作的还原 git reset --hard ORIG_HEAD
  5. 提取其他分支的提到自己的分支上git cherry-pick commit id,commit id 指的是想要提取的其他分支那个版本的id
  6. 汇合过去两次的提交为一次 git rebase -i HEAD~~ 需要在命令行下面的编辑工具中将第二行的“pick”改成“squash”,然后保存并退出
  7. 修改提交备注 git rebase -i HEAD~~ ,需要在命令行下面的编辑工具中将第二行的“pick”改成“edit”,然后保存并退出,然后git add 添加到暂存区,用commit --amend保存修改,最后合并git rebase --continue
  8. 子分支的所有提交一起合并到主分支 git merge --squash branch name

squash 是merge的特殊选项:用这个选项指定分支的合并,就可以把所有汇合的提交添加到分支上。