[llvm] [Docs] Add example of making a PR with git and GitHub web interface (PR #65393)

Michael Maitland via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 5 12:39:22 PDT 2023


https://github.com/michaelmaitland updated https://github.com/llvm/llvm-project/pull/65393:

>From 9dc65746fb8afbfe067c5b15ba76e24588fcbfc2 Mon Sep 17 00:00:00 2001
From: Michael Maitland <michaeltmaitland at gmail.com>
Date: Tue, 5 Sep 2023 10:33:24 -0700
Subject: [PATCH 1/2] [Docs] Add example of making a PR with git and GitHub web
 interface

Some people may not have access to `gh` or may prefer to use `git` and
the GitHub web interface to make a PR. This patch adds an example of
making a PR using this approach.
---
 llvm/docs/GitHub.rst | 70 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)

diff --git a/llvm/docs/GitHub.rst b/llvm/docs/GitHub.rst
index 48ddfe515a2ee84..5429aa22393748b 100644
--- a/llvm/docs/GitHub.rst
+++ b/llvm/docs/GitHub.rst
@@ -207,6 +207,76 @@ See more in-depth information about how to contribute in the following documenta
 * :doc:`Contributing`
 * :doc:`MyFirstTypoFix`
 
+Example Pull Request with git
+====================================
+
+Instead of using the GitHub CLI to create a PR, you can push your code to a
+remote branch on your fork and create the PR to upstream using the GitHub web
+interface.
+
+Here is an example of making a PR using git and the GitHub web interface:
+
+First follow the instructions to [fork the repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo?tool=webui#forking-a-repository).
+
+Next follow the instructions to [clone your forked repository](https://docs.github.com/en/get-started/quickstart/fork-a-repo?tool=webui#cloning-your-forked-repository).
+
+Once you've cloned your forked repository,
+
+::
+
+  # Switch to the forked repo and create a new branch
+  cd llvm-project
+  git switch -c my_change
+
+  # Create your changes
+  $EDITOR file.cpp
+
+  # Don't forget clang-format
+  git clang-format
+
+  # and don't forget running your tests
+  ninja check-llvm
+
+  # Commit, use a good commit message
+  git commit file.cpp
+
+  # Push your changes to your fork branch, be mindful of
+  # your remotes here, if you don't remember what points to your
+  # fork, use git remote -v to see. Usually origin points to your
+  # fork and upstream to llvm/llvm-project
+  git push origin my_change
+
+Now back on the GitHub web interface, navigate to your fork and create a pull
+request from your branch to llvm::main.
+
+::
+
+  # If you get any review comments, come back to the branch and
+  # adjust them.
+  git switch my_change
+  $EDITOR file.cpp
+
+  # Commit your changes
+  git commit file.cpp -m "Code Review adjustments"
+
+  # Push your changes to your fork branch, be mindful of
+  # your remotes here, if you don't remember what points to your
+  # fork, use git remote -v to see. Usually origin points to your
+  # fork and upstream to llvm/llvm-project
+  git push origin my_change
+
+  # When your PR is accepted, you can now rebase it and make sure
+  # you have all the latest changes.
+  git rebase -i origin/main
+
+  # If this PR is older and you get a lot of new commits with the
+  # rebase, you might want to re-run tests and make sure nothing
+  # broke.
+  ninja check-llvm
+
+Once your PR is approved, rebased, and tests are passing, click `Squash and
+Merge` on your PR in the GitHub web interface.
+
 Releases
 ========
 

>From d3de3c753feebb5d1ee6b76a95633814b703313c Mon Sep 17 00:00:00 2001
From: Michael Maitland <michaeltmaitland at gmail.com>
Date: Tue, 5 Sep 2023 12:39:04 -0700
Subject: [PATCH 2/2] fixup! [Docs] Add example of making a PR with git and
 GitHub web interface

---
 llvm/docs/GitHub.rst | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/llvm/docs/GitHub.rst b/llvm/docs/GitHub.rst
index 5429aa22393748b..08a66c91a02362d 100644
--- a/llvm/docs/GitHub.rst
+++ b/llvm/docs/GitHub.rst
@@ -246,8 +246,8 @@ Once you've cloned your forked repository,
   # fork and upstream to llvm/llvm-project
   git push origin my_change
 
-Now back on the GitHub web interface, navigate to your fork and create a pull
-request from your branch to llvm::main.
+Navigate to the URL printed to the console from the git push command in the last step.
+Create a pull request from your branch to llvm::main.
 
 ::
 
@@ -259,6 +259,12 @@ request from your branch to llvm::main.
   # Commit your changes
   git commit file.cpp -m "Code Review adjustments"
 
+  # Format changes
+  git clang-format HEAD~
+
+  # Recommit if any formatting changes
+  git commit -a --amend
+
   # Push your changes to your fork branch, be mindful of
   # your remotes here, if you don't remember what points to your
   # fork, use git remote -v to see. Usually origin points to your



More information about the llvm-commits mailing list