Git 工作流程

更新代码 确保自己的代码在主线上最新的,并且保持master下是干净的。

git checkout master
git pull
git status

应该是显示如下

git status

On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean

切新分支 确保这个分支是新建的。两种方法 1.用一个没有用过的分支名,2.删掉存在的分支和远端分支。

# 删除分支
git branch -D branchName
git branch -D origin/branchNamek
# 新建分支并切换到该分之下
git branch new_branch_name
git checkout new_branch_name     
git checkout -b new_branch_name

注意看提示是不是新分支

更新代码

添加你已经写好的代码

如果这时候你发现自己想删除自己修改的文件可以使用下面的操作

git clean -dfx # 删除添加的文件
git checkout . # 删除文件的修改

注意: 到相应的目录下去执行

添加到待提交内存

git add .  # 添加所在目录下的所有文件
git add filename # 添加filename 这一个文件。

提交到本地仓库

git commit -m "commit message"
git commiy -m -> 会打开编辑器

提交commit 格式

(scope):(subject)

$(description)

  • $(scope):必需,取决于具体项目,一般为项目目录、模块或组件的名字,用来描述本次 commit 影响的范围(即 where),比如 Node.jsGolang 的源码仓库就是如此。
    • 使用首字母小写的驼峰格式。
    • 嵌套层级结构可以用 / 表示,如 net/http
    • 涉及多个目录、模块或组件可以用 , 隔开(不加空格以节省空间),如 net/http,cmdnet/{tcp,http}(表示 net/tcpnet/http)。
    • 无意义的层级可省略,比如 Java 项目没必要把 src/main/java/${package} 包含进来,需酌情选择简练而有描述性的表示方式,嵌套层级不要太深。
    • bughotfixtaskchangerefactor 等等描述的都不是影响的具体范围,而是改动类型,不能用作 scope。
    • 除具体的目录、模块或组件名之外,可以使用 base 表示基础结构、框架相关的改动,用 misc 表示杂项改动,用 all 表示大范围重构。
    • 后加入项目的新成员应遵循已有的 scope 约定(通过 git log 可以查看某个文件的提交历史或咨询 leader),不要自己编造。
  • $(subject):必需,描述 what 和 why。
    • 50 个字符左右的简要说明,首字母小写,祈使句(即使用动词原型,无时态),不加句号。
    • 禁止出现 update codefix bug 等无实际意义的描述(这种废话写了跟没写一样),好的例子: select connector by sorting free memory (不需要形如 update about how to select connector ... 的啰嗦写法),fix sucess tip can not show on IE8 (不需要形如 fix bug of ... 的啰嗦写法)。
    • 一个简单的判断 subject 是否合适的办法:把你的 subject 放到句子 If applied, this commit will xxx 里是否通顺?
  • $(description):可选,详细说明,建议使用列表罗列要点。

保存后完成提交。

FAQ:

在这个时候你发现自己的代码不对想撤销这次提交,可以使用一下方法。

撤销本次commit不删除修改的代码,回到commit之前(不删除代码)不撤销git add。

git reset --soft HEAD^

撤销本次commit删除修改的代码,回到修改代码之前(会删除代码哦), 撤销git add 操作

git reset --hard HEAD^

同步到远端仓库

git push

如果有提示以下

git push
fatal: The current branch lidejin001 has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin lidejin001

说明你远程没有这个分支,只需要复制以上提示命令重新执****行即可。

git push --set-upstream origin macro
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容