更新代码 确保自己的代码在主线上最新的,并且保持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 格式
(subject)
$(description)
-
$(scope)
:必需,取决于具体项目,一般为项目目录、模块或组件的名字,用来描述本次 commit 影响的范围(即 where),比如 Node.js 和 Golang 的源码仓库就是如此。- 使用首字母小写的驼峰格式。
- 嵌套层级结构可以用
/
表示,如net/http
。 - 涉及多个目录、模块或组件可以用
,
隔开(不加空格以节省空间),如net/http,cmd
、net/{tcp,http}
(表示net/tcp
和net/http
)。 - 无意义的层级可省略,比如 Java 项目没必要把
src/main/java/${package}
包含进来,需酌情选择简练而有描述性的表示方式,嵌套层级不要太深。 -
bug
、hotfix
、task
、change
、refactor
等等描述的都不是影响的具体范围,而是改动类型,不能用作 scope。 - 除具体的目录、模块或组件名之外,可以使用
base
表示基础结构、框架相关的改动,用misc
表示杂项改动,用all
表示大范围重构。 - 后加入项目的新成员应遵循已有的 scope 约定(通过
git log
可以查看某个文件的提交历史或咨询 leader),不要自己编造。
-
$(subject)
:必需,描述 what 和 why。- 50 个字符左右的简要说明,首字母小写,祈使句(即使用动词原型,无时态),不加句号。
- 禁止出现 update code、fix 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