核心分支说明
-
**主分支(master/production)**存放随时可部署到生产环境的稳定代码,仅接受通过测试的合并请求。
-
**开发分支(develop)**集成所有功能开发的稳定版本,日常开发的基础分支,从该分支创建特性分支
-
特性分支(feature/*) 命名规范:
feature/功能描述_开发者标识
(如feature/login_zhangsan
)开发流程:
-
git merge develop # 定期同步主干代码
-
git push origin feature/new_module # 推送远程
-
git pull origin develop
-
git checkout -b feature/new_module # 从develop创建分支
-
git 分支开发命令
|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 操作 | 命令 |
| 查看当前分支 | git branch(git branch -a
查看所有分支) |
| 从仓库拉取分支 | git fetch origin 分支名 |
| 切换分支 | git checkout 分支名 (将当前分支的修改带过去 git checkout -b 分支名) |
| 拉取最新分支 | git pull origin 分支名 (pull=fetch+merge) |
| 删除未跟踪的和未添加到暂存区的文件和目录 | git clean -n 预览 git clean -fd 删除 |
| 恢复修改的文件 | git restore 文件名 |
| 删除分支 | git branch -D 分支名 # 强制删除未合并分支-D |
| 远程分支覆盖本地 | git reset --hard origin/master (覆盖修改的文件) |
| 提交暂存区 | git add 文件名 (不建议用 git add .) |
| 移出暂存区,保持修改 | git reset HEAD (移出所有) git reset HEAD 文件名 |
| 查看提交状态 | git status |
| 查看代码区别 | git diff --cached git diff --no-index (比较两个未跟踪的文件) git diff branch1:a.sh -- b.sh (比较分支中的a和本地b) |
| 提交暂存代码 | git commit -m 'icafe-id icafe-name' |
| 删除本地和暂存区文件 | git rm 文件 |
| 多次commit | git commit --amend |
| 查看最近的commit | git log |
| 查看特定的 commit | git show <commit-hash> |
| 撤回上一次commit | git reset HEAD~1 (包括add) |
| 回退到合并前的状态 | git reset --hard ORIG_HEAD (慎用) |
| 提交至远程仓库 | git push origin HEAD:refs/for/分支名 |
| cr评审 | 如果代码评审没通过,再次修改时,不能使用git commit -m ,要使用 git add git commit --amend //合并本次与上次提交,加-m 卡号和注释,可以修改,但是是新起一个cr git push origin HEAD:refs/for/分支名 已合分支,合并master需要修改 拉分支,重新修改分支再提交 冲突解决 git fetch origin # 获取远程最新代码 git pull origin 当前分支 # 合并远程变更到本地 git status # 查看所有冲突文件(标记为"Unmerged paths") git checkout --ours 目录/ # 整个目录保留当前分支修改 git checkout --theirs 目录/ # 整个目录采用合并分支修改 其他push错误 https://cloud.baidu-int.com/icloud/iCode/Git-client-message/push_error/#too_many_commits |