(本文已发表至微信公众号:CGRnDStudio,该公众号主要发布影视特效制作相关的编程基础/软件研发/流程研发等内容,墙裂推荐给大家~)
流程TD不仅需要为公司制作部门制定流程,其内部也需要规范化的流程以保证开发顺利进行。本文简单介绍了Git规范化工作流程及常用Git命令
克隆项目,新建分支
# clone项目到本地,新建分支
git clone <URL>
# 仅克隆指定分支,不会有其他远程信息
git clone --depth=1 --branch=<branch_name> <URL>
# 新建分支
git checkout -b <branch_name>
# 在本地创建一个跟踪远程origin/branch的分支,
然后切换到该分支
git checkout --track origin/<branch_name>
# 克隆远程新分支
git fetch
git checkout branch
修改本地代码,提交修改
# 查看修改,提交修改
git status
git diff
git diff -cached
git add .
git commit -am "commit_message"
# 与远程master保持同步,推送修改
git fetch
git rebase
git push origin <branch_name>
解决合并冲突
# 在IDE中修改有冲突的代码之后
git add file.py
git merge master
查看信息
# 查看本地分支的跟踪,领先信息
git branch -vv
# 查看所有远程分支
git branch -r
# 查看提交状态
git show --stat
gitk
git log
commit id与版本回退
# 查看当前SHA id(对commit内容和Header的一个校验和)
git cat-file commit HEAD
git rev-parse HEAD
git log --preety=format:"%h - %an, %ar: %s"
# 查看远程分支SHA id
git ls-remote origin | egrep "<branch name>"
# 版本回退
git reset --hard <commit id>
撤销修改
# 要提交的变更,撤出暂存区
git reset
# 未跟踪
git clean -df
# 尚未暂存
git checkout -f
工作结束后删除本地与远程分支
git branch -d <branch_name>
git push origin --delete <branch_name>
注:
- 如果使用git clone --branch=<branch_name> <URL>克隆指定分支, 那么在使用git branch -r查看远程分支时仅有指定分支信息, 不会看到其他远程分支信息
- 为便于测试, 避免出错,可以在远程创建一个master-pre分支, 先将修改合并到这一分支, 测试无误后再合并到master分支
- 血泪教训: 谨慎删除远程分支, 最好在确保合并到master之后由合并者删除