init 创建一个空的 Git 版本库或重新初始化一个已存在的版本库
在当前变更上工作(参见:git help everyday)add 添加文件内容至索引mv 移动或重命名一个文件、目录或符号链接 reset 重置当前HEAD到指定状态 rm 从工作区和索引中删除文件
检查历史和状态(参见:git help revisions)bisect 通过二分查找定位引入 bug 的变更grep 输出和模式匹配的行 log 显示提交日志 show 显示各种类型的对象 status 显示工作区状态
扩展、标记和调校您的历史记录branch 列出、创建或删除分支checkout 切换分支或恢复工作区文件 commit 记录变更到版本库 diff 显示提交之间、提交和工作区之间等的差异 merge 合并两个或更多开发历史 rebase 本地提交转移至更新后的上游分支中 tag 创建、列出、删除或校验一个GPG签名的 tag 对象
协同(参见:git help workflows)fetch 从另外一个版本库下载对象和引用pull 获取并整合另外的版本库或一个本地分支 push 更新远程引用和相关的对象
克隆版本库到本地。通常不使用init,直接在scm工具里创建一个新的project,然后在本地通过clone命令获取此仓库。
git clone git@gitlab.alibaba-inc.com:${project-path}.git对代码做出变更后在做变更或协同动作前,请查看你当前所在分支。
## 默认查看本地分支列表 及 当前分支会有标记显示 git branch ## 查看本地 及 远程所有分支 git branch -a当新增或者变更一个文件的时候使用add命令将其纳入本地版本库索引。
## 单文件 git add test.md ## 多文件 git add test.md test2.md ## 全部变更或新增 git add --all git add .查找提交记录 或者 查看当前变更状态 使用 log&status 。
## 展示当前分支的commit记录 git log ## 仅查看指定行数的log git log -2 ## 查看全部的commit记录,可以用于判断是否本地需要fetch了 git log --all ## 查看状态 git status开发时需要经常与远程同步。
git pull 命令等同于fetch+merge,建议分别使用fetch+merge命令以便控制合并变更的决策。
方式一:将远端修改获取到本地,然后做merge动作。
## 从远程下载最新版本到本地master git fetch origin master ## 查看修改 git log -p master..origin/master git log -p dev/test1..origin/master ## 合并远程master的变更到当前所在分支 git merge origin/master方式二:将远端修改获取到自定义的新本地分支,然后将此本地分支合并到当前分支。
## 从远程下载最新版本到本地新分支newbranch,会同时创建此分支 git fetch origin master:${newbranch} ## 查看修改 git diff ${newbranch} ## 合并本地新分支newbranch的变更到当前所在分支 git merge ${newbranch} ## 废弃临时新分支 git branch -d ${newbranch}衍合功能的含义是会将当前分支上的变更先拉出去,然后用最新的master分支作为基准,再将当前分支的变更作用上去并提交。相对于merge,rebase类似于aone的分支自动重建,并且不会产生额外的节点。
## 对之前fetch来的内容做衍合处理 git rebase ## 如果有冲突需要马上解决,如果想交互式解决可以加i参数,解决后通过add命令载入变更到索引,并继续 git rebase -i git add . ## 继续 git rebase --continue推送本地仓库变更到远程仓库。
## 提交本地分支变更到远程分支 git push origin dev/test1 ## 提交本地master变更到远程master分支 git push origin master类似aone的最终发布动作。
git checkout -b dev/test1 ## modify something git add . git commit -m 'test1' git checkout master git merge dev/test1 git push origin master