创建
Git clone ssh://user@domain.com… 复制一个已创建的仓库
Git init 常见一个新的本地仓库
本地修改
git status 显示工作路径下全部已修改的文件
git diff 显示与上次提交版本文件的不同
git add . 把当前所有修改添加到下次提交中
git add –p <file> 指定某个文件的修改添加到下次提交中
git commit –a 提交本地的所有修改
git commit 提交之前的已标记的变化
git commit – amend 修改上次提交(请勿修改已发布的提交记录)
提交历史
git 从最新提交开始显示所有的提交记录
git log –p<file> 显示指定文件的所有修改
git blame <file> 谁,在什么时间,修改了文件的什么内容
分支与标签
git branch –av 显示所有分支
git checkout <branch> 切换当前分支
git branch <new-branch> 创建新分支(基于当前分支)
git checkout – track <remote/branch> 创建新的可追溯的分支(基于远程分支)
git branch –d <branch> 删除本地分支
git tag <tag-name> 给当前的提交打标签
更新与发布
git remote –v 列出当前配置的远程端
git remote show <remote> 显示远程断信息
git remote add <shortname> <url> 添加新的远程端
git fetch <remote> 下载远程端的所有改动到本地(不会自动合并到当前)
git pull <remote> 下载远程端的所有改动到本地(自动合并到当前)
git push <remote> <branch> 讲本地版本发布到远程端
git branch –dr <remote/branch> 删除远程端分支
git pushi -- tags 发布标签
合并与重置
git merge <branch> 将分支合并到当前
git rebase <branch> 将当前版本重置到分支中(请勿重置已发布的提交!)
git rebase --abort 退出重置
git rebase --continue 解决冲突候继续重置
git mergetool 使用配置好的合并工具去解决冲突
git add <resolved-file> (在编辑器中手动解决冲突后编辑文件为已解决冲突)
git rm <resolved-file> (在编辑器中手动解决冲突后编辑文件为已解决冲突)
撤销
git reset –hard HEAD 放弃某个文件的所有本地修改
git checkout HEAD <file> 放弃某个文件的所有本地修改
git revert <commit> 重置一个提交(通过创建一个截然不同的新提交)
git reset <commit> --hard将HEAD重置到上一次提交的版本并抛弃该版本之后的所有修改
git reset <commit> 将HEAD重置到上一次提交的版本并将之后修改标记文未添加到缓存区的修改
git reset --keep<commit>将HEAD重置到上一次提交的版本并保留未提交的本地修改