Watch、star、fork

如上图所示, 每个 github 项目的右上角, 都有三个按钮: Watchstarfork.

Watch

这个单词在调试程序时经常遇到, 意为监视, 当把某个变量添加到监视后, 就可以实时看到变量的值的变化.

Github 中的 Watch 也是类似的功能, 当你监视某个项目后, 如果项目发生变动, 如有人提交了 pull request、发起了 issue 等等情况, 都会在自己的个人通知中心收到一条通知消息, 如果设置了个人邮箱, 那么还可能收到相应的邮件.

点击 Watch 按钮后会出现三个选项:

通常只会在 Not watchingWatching 中选择.

star

点赞收藏功能于一体...

点击 github 个人头像, 选择 your stars 可以查看 star 过的列表.

然后就没啥好说的了...

fork

当对别人的项目进行 fork 后, 就会在自己的仓库生成一份源项目的拷贝, 当然这个拷贝只是 fork 发生时的项目文件, 如果后续源项目文件发生改变, 必须通过 pull request 去同步.

fork 应该只在需要对开源项目做贡献时才使用, 很多人会把 fork 当成收藏,这是不对的, 收藏应该使用 star 功能.

fork 别人的源项目后, 应该谨遵 pull request 的建议去贡献自己的代码.

issue

问题列表, 可当该项目的 todolist 使用, 可以选择 issue 的类型, 如 feature、bug 等.

另外,在 commit 中可以通过 #issue_id 与某个 issue 关联, 比如 commit message title, #1, 还可以指定对 issue 的操作:

不过在此之前, 需要检查下你的 Github 的注册邮箱与 git config --list 中设置的 user.email 是否一致, 只有一致了才能通过 commit 操作 issue, 如果不一致, 需要设置下:

git config --global user.email "email@example.com"

# 如果设置了 config --local, 则需要再检查下
git config --local user.email "email@example.com"



issue 中还可以通过指定 Assignee 则可以将 issue 分配到某位项目成员身上, 为团队协作提供可能.

最后, issue 是开放的, 作为一个路人, 你可以通过 issue 给别人的项目提 bug.

Pull Request

首先, 要注意一点, 对于 fork 的项目, 最好永远不要直接在 master 分支上进行修改, 因为 fork 的源项目随时会发生更改, 当收到 fork 源更新的通知时, 需要在自己的仓库发起同步 Pull Request, 如果之前直接在 master 上修改了代码, 此时就会出现冲突问题. 所以在 master 分支上应该只用来发起同步 Pull Request.

fork 了一个开源项目后, 应该:

点击 New pull request 按钮创建一个新请求.

该请求是双向的: