master:默认开发分支
Head:默认开发分支
origin:默认远程版本库
Head~:Head的父提交
创建
git clone ssh://user@domain.com/xx.git 克隆远程仓库
git init 初始化本地git仓库(新建仓库)
提交历史记录
git log 显示日志
git show <commit> 显示某个提交的详细内容
git blame <file> 在每一行显示commit号;提交者;最早提交日期
本地更改
git status 查看当前版本状态(是否修改)
git diff 查看所有未添加至index的变更
git diff HEAD 查看已缓存的与未缓存的所有改动
git add <path> 将文件添加至缓存
git commit -m 'xxx' 提交
git commit --amend -m 'xxx' 合并上一次提交(用于反复修改)
git commit -am 'xxx' 将add和commit合为一步
分支机构和标签
git branch 显示本地分支
git checkout <branch> 切换分支
git branch <new-branch> 新建分支
git branch --track <new> <remote> 创建新分支跟踪远程分支
git branch -d <branch> 删除本地分支
git tag <tag-name> 给当前分支打标签
更新和发布
git remote -v 列出远程分支详细信息
git remote show <remote> 显示某个分支信息
git remote add <remote> <url> 添加一个新的远程仓库
git fetch <remote> 获取远程分支,但不更新本地分支,另需merge
git pull <remote> <branch> 获取远程分支,并更新本地分支
git push <remote> <branch> 推送本地更新到远程分支
git push <remote> --delete <branch> 删除一个远程分支
git push --tags 推送本地标签
撤销
git reset --hard HEAD 将当前版本重置为HEAD(用于merge失败)
git reset --hard <commit> 将当前版本重置至某一个提交状态(慎用)
git reset <commit> 将当前版本重置至某一个提交状态,代码不变
git reset --merge <commit> 重置至某一状态,保留版本库中不同文件
git reset --keep <commit> 重置至某一状态,重置变化的文件,代码改变
git checkout HEAD <file> 丢弃本地更改信息并将其存入特定文件
git revert <commit> 撤销提交
合并与衍合
git merge <branch> 合并分支到当前分支,存在两个
git rebase<branch> 合并分支到当前分支,存在一个
git rebase --abort 回到执行rebase之前
git rebase --continue 解决矛盾后继续执行rebase
git mergetool 使用mergetool解决冲突
git add <resolved-file> 使用冲突文件解决冲突
git rm <resolved-file>
帮助
git help <command> 获取命令行上的帮助
当git clone下来的工程有子模块时,子模块下的内容不会自动下载下来,需要先执行git submodule update --init --recursive进行初始化,然后执行git submodule foreach git checkout dev_test(分支名称) 检出需要的分支,这时每个模块检出的都是dev_test分支,也可以在每个模块对应的目录下检出其他需要的分支。
网友评论