基础命令
- git commit -m “note” 提交记录
- git branch xxx 创建分支
- git branch -d xxx 删除分支 git branch -D xxx 强制删除分支
- git checkout xxx 切换分支
- git checkout -b xxx 创建并切换到分支
git merge
- git merge 合并两个分支并产生一个新的提交记录,包含所有修改
git merge bugFix
git checkout bugFix; git merge master
- 如果在两个不同的分支里,对同一个文件的同一个部分进行了不同的修改,则会产生合并冲突
- 打开冲突文件
- 修改内容来解决冲突
git rebase
- git rebase 取出一系列提交记录,复制并提交到别的地方
git rebase master
git checkout master; git rebase bugFix
高级命令
- HEAD 一般指向当前分支上最近的一次提交记录,可通过git checkout改变
- 相对引用:^ 向上移动一个提交记录,~100 向上移动多个提交记录
- 绝对引用:git log 查看提交历史的哈希值
- git log -p -2 查看最近两次提交并显示内容差异
- git reflog 记录了所有的git命令操作
移动分支
- git branch -f 分支强制移动到某个位置
git branch -f master HEAD~3
撤销变更
- git reset 将分支记录回退几个提交记录,用于本地分支
git reset HAED^
- git revert,用于远程分支
git revert HEAD
- c2‘和c1内容相同
实战
- git init 初始化
- git remote add origin xxx.git 绑定远程目录
- git clone xxx 克隆现有仓库 默认是master分支
- git branch 查看本地分支 -r 远程分支 -a 所有分支
- git status 查看文件状态
- git add xxx 跟踪新文件
- .gitignore文件里记录无需纳入git管理的文件
远程分支
- git push 推送到远程服务器
- git fetch 从远程分支上拉取本地没有的数据,但不会修改工作目录中的内容
- git pull 将上述两条命令合并为一条
- git push origin --delete xxx或者 git push origin : xxx 删除远程分支
- git checkout -b 本地分支名 origin/远程分支名 拉取远程分支并创建本地分支
git stash 暂存修改
压缩提交记录
- 在开发中,可能提交了很多次代码,真正合并代码时,不希望有冗余的提交记录
超级命令
git cherry-pick
- 将某些提交按顺序放在HEAD下
git cherry-pick c2 c4