我可以在 git 克隆之后发出拉取请求吗?

Can I make a pull request after a git clone?

我是否必须 fork 一个 repo 才能发出拉取请求?以下是我目前对 repo 共享和更新过程的理解:

  1. 我在 GitHub 上分叉了一个共享仓库,它在 GitHub
  2. 上创建了我自己的仓库
  3. 我在 GitHub 上从我自己的仓库克隆,这给了我一个本地仓库
  4. 我在本地仓库上创建了一个新分支 "test"(我相信这也会在 GitHub 上的远程仓库上创建一个测试分支?)
  5. 我更改了工作目录,添加、提交并推送到远程
  6. 我回到 GitHub 到我的存储库,然后通过 GUI 在 GitHub 上发出拉取请求。

除上述之外,我是否可以从共享存储库中克隆并直接从终端发出拉取请求?还是我必须通过分叉并通过 GitHub 的 GUI?

如果您没有共享存储库的写入权限,那么可以:您需要一个分支来在 GitHub 上创建拉取请求。否则,您将无法将本地更改推送到任何地方。

If you do have write access to the shared repo, you can just make a branch.

您可能想要安装 hub,一个命令行 GitHub 工具。然后你可以按照这个更短的流程:

$ hub clone someorg/somerepo
$ cd somerepo

$ git checkout -b somefeaturebranch
…
$ git commit -am "commit message"

$ hub fork

$ git push YOUR_GITHUB_USERNAME somefeaturebranch
$ hub pull-request

配置后,您实际上可以互换使用 github。我只是将它们分开,以便您可以看到哪些是 Git 命令,哪些是 GitHub 命令。