Git 教程指南

Git 教程指南

Git 教程指南

Git 工作流

Git 工作流程

Git 与 SVN 区别

如何正确提交PR

1.1 如何发起 pull request

推荐 GitHub 使用工具,建议 WebStorm , Sourcetree ,命令行( window 加强 CMD 工具 Cmder ,建议不要下载那个客户端。

1.2 如何提交:

整个流程(以下举例,其中我为giscafer用户): 我先 forkcrm/crm-platform 的仓库,然后我从我的仓库克隆到本地修改,修改完后提交到我的仓库,然后我再申请 pull requestcrm/crm-platform 同意合并后其实整个过程就完了,但是 crm/crm-platform 经常会有更改就需要我刚那一步在我本地同步一下你的远程仓库,同步后再提交到我的仓库。 具体代码:

# 列出远程仓库 URL
$ git remote -v
# List the current remotes (列出当前远程仓库)
# origin  https://git.yourcompany.com/user/crm-platform.git (fetch)
# origin  https://git.yourcompany.com/user/crm-platform.git (push)

# 设置一个新的远程仓库
$ git remote add yourcompany git@git.yourcompany.com:crm/crm-platform.git

# 再次列出远程仓库 URL
$ git remote -v
# yourcompany     git@git.yourcompany.com:crm/crm-platform.git (fetch)
# yourcompany     git@git.yourcompany.com:crm/crm-platform.git (push)
# origin      git@git.yourcompany.com:giscafer/crm-platform.git (fetch)
# origin      git@git.yourcompany.com:giscafer/crm-platform.git (push)

# 获取上游代码
$ git fetch yourcompany

# 检查你的 fork’s 本地 master 分支,如果不在 master 分支就切换到该分支
$ git checkout master
# Switched to branch 'master'

# 合并来自 yourcompany/master 的更改到本地 master 分支上。
$ git merge yourcompany/master

1.3 提交之后:

提交合并到 crm/crm-platform 之后,为了保证与主仓库代码的一致性,还需要进行一次本地与远程仓库的手动更新。

基本操作练习

名词解析:master(默认开发分支)origin(默认远程版本库) 本地分支远程分支Fork仓库远程仓库远程原仓库

  • (0)如何新建分支:远程分支&本地分支,以及分支之间切换?

Git 分支 - 分支的新建与合并

  • (1) 如何删除本地分支?如何删除远程仓库分支?删除标签?

批量删除远程分支,带greenkeeper 前缀的分支:

git branch -a | grep -o "greenkeeper.*" | xargs -I {} git push origin :{}

Git查看、删除、重命名远程分支和tag

  • (2) 本地分支如何推送远程仓库分支?

git push scm 「分支名称」:「分支名称」

  • (3) 根据tag创建新的分支.

git branch <new-branch-name> <tag-name>

  • (4) 如何更新远程来源主仓库分支最新代码到Fork仓库分支?(「fork 出来的仓库」和「最新版本的原仓库」内容同步更新)

添加remote仓库,pull对应分支,再 push 到fork仓库

  • (5) 如何合并Fork仓库某分支代码到原仓库某分支?

非主程序员只能用PR方式:本地分支的改动代码push到远程分支对应分支后,再通过PR方式请求合并到原仓库分支。PR之前,建议更新最新代码,避免冲突的可能(就是执行步骤4)

资源

相关文章

Git命令大全

详细阅读文章:Git速查表

Git速查表

git (1)

git rebase 合并提交(修改已提交信息)

比如Github上的开源项目,要严格要求,一个功能点feat或者,一个bug修改,代码修改好,测试没问题,一次性提交修改的文件(只允许一个commit)

举例一个PR中commit两次的操作,然后工程维护者建议修改提交信息重新PR:https://github.com/NG-ZORRO/ng-zorro-antd/pull/78

多个commit 需要合并为一个完整的commit提交

规范性的PR约束

commit 信息不是乱填的,PR 标题也不是乱填的。可以参考开源工程的一些约束说明:CONTRIBUTING.md


欢迎前往原文讨论:https://github.com/giscafer/blog/issues/29

相关文章