安装配置:
安装git:brew install git
检查是否安装成功:git --version
1.第一次介入某个项目
命令 | 描述 |
---|---|
git clone ssh/http url | 把project给download下来,文件夹中会有.git,表示是一个仓库 |
git status | 查看当前状态 |
git checkout [-b] [New]BrachName | 创建并切换新分支 |
git status | 查看是否切换到 NewBranchName分支 |
git status | 有对代码进行改动,此时可以查看新增/改动/删除的文件,没有改动则无 |
git diff | 在workspace中查看修改内容 |
git add . | 将当前目录中的修改文件添加到storge中,也可以只添加某个文件,将“.”替换该文件的完整路径名+文件名即可。 |
git status | 此时可以看见发生修改的文件变为绿色,表示成功add到了storge中 |
git diff HEAD | 若要查看在storge中的修改内容,要加HEAD |
git commit -m "description" | 此时可以把storge中的文件commit到local repository中,其中-m表示的是message,引号内描述本次commit的修改内容 |
git status | commit完成,显示"nothing to commit, working tree clean",working tree指的是workspace + storge,只有当working tree为空时,才能进行push/pull操作,否则会造成数据被覆盖的后果。 |
git push | 此操作是将文件从local repository传到remote repository,如果你没有权限,会报错:"fatal:remote error : Insufficient permissions",所以要找管理人员给你提供权限哦,该步骤完成后git status依然是working tree clean 曾经使用出现了错误,因为有project不是我一个人在做修改,所以我在commit之后要先checkout回master分支将代码pull到最新,然后再checkout回去,修改conflict使其兼容最新master代码,最后再push |
create PR | 交给上级或同事进行code review |
2.当代码被合并至master分支后,checkout至master分支时需要更新代码
命令 | 描述 |
---|---|
git status | make sure the working tree is clean,否,则表示workingspace中有修改没有上传,注意先commit再pull,以免数据被覆盖 |
git checkout master | 未加选项-b,表示进入master分支 |
git status | make sure on branch master |
git pull | updating the master |
git status | make sure the working tree is clean |
3.回退代码相关
命令 | 描述 | 详细描述 |
---|---|---|
git reset HEAD | 撤销add |
|
git reset --soft HEAD^ | 撤销commit | HEAD^表示上一个版本,也可以写成HEAD~1 如果有2次commit,都想撤回,用HEAD~2 |
git reset --soft CommitId | 撤销指定的commit,由commitId指定 | git revert和reset的区别是前者会生成一个新的提交来撤销某次提交,被撤销的提交之前的commit都会保留,而git reset 则是回到某次提交,类似穿越时空……甚至看到了一种暴力的说法:git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit |
git revert CommitId | 同上 |