User Tools

Site Tools


newdevs:git:commands

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
newdevs:git:commands [2023/11/20 14:39] – adding config instructions for username and email sclnewdevs:git:commands [2024/03/25 16:35] (current) tmccanna
Line 1: Line 1:
 **New Developers Working Group** **New Developers Working Group**
-====== Git for Windows ====== +====== Useful Git Commands ======
- +
-===== Useful Commands ===== +
- +
-==== Git Commands ====+
  
   * ''git add myfile.txt'' --> stage a specific file   * ''git add myfile.txt'' --> stage a specific file
Line 22: Line 18:
   * ''git cherry-pick -s <nowiki><first hash>^..<last hash></nowiki>'' --> apply a range of commits with your signoff to your local branch   * ''git cherry-pick -s <nowiki><first hash>^..<last hash></nowiki>'' --> apply a range of commits with your signoff to your local branch
   * ''git clean -d -i'' --> interactively delete untracked files you do not want   * ''git clean -d -i'' --> interactively delete untracked files you do not want
 +  * ''git clean -d -f'' --> delete untracked folders you do not want
   * ''git clone <nowiki>git://git.evergreen-ils.org/Evergreen.git</nowiki>'' --> clones a remote repository   * ''git clone <nowiki>git://git.evergreen-ils.org/Evergreen.git</nowiki>'' --> clones a remote repository
   * ''git commit'' --> invoke the default text editor to add a commit message   * ''git commit'' --> invoke the default text editor to add a commit message
   * ''git commit -m "my commit message"'' --> add brief commit message instead of opening the text editor to add a commit message   * ''git commit -m "my commit message"'' --> add brief commit message instead of opening the text editor to add a commit message
   * ''git commit <nowiki>--amend</nowiki>'' --> overwrite your last commit message   * ''git commit <nowiki>--amend</nowiki>'' --> overwrite your last commit message
 +  * ''git commit <nowiki>--amend --author='Jon Doe <example@example.com'</nowiki>'' --> amend commit author
   * ''git commit <nowiki>--amend --signoff</nowiki>'' --> view and amend your sign-off branch   * ''git commit <nowiki>--amend --signoff</nowiki>'' --> view and amend your sign-off branch
   * ''git commit <nowiki>--amend --signoff <hash></nowiki>'' --> view and amend your signoff for a specific commit on your sign-off branch   * ''git commit <nowiki>--amend --signoff <hash></nowiki>'' --> view and amend your signoff for a specific commit on your sign-off branch
Line 37: Line 35:
   * ''git fetch working'' --> fetches all new branches in the working directory   * ''git fetch working'' --> fetches all new branches in the working directory
   * ''git help'' --> access the built-in Git help documentation   * ''git help'' --> access the built-in Git help documentation
-  * ''git log <nowiki>--oneline</nowiki>'' --> list previous commits with their unique ids+  * ''git log'' --> lists most recent commits with details 
 +  * ''git log <nowiki>--name-only</nowiki'' --> lists first line only of most recent commits 
 +  * ''git log <nowiki>--oneline</nowiki>'' --> lists id plus first line only of most recent commits
   * ''git pull'' --> imports all updates from your default remote repo to your default local repo (usually, this is equivalent to 'git pull origin main'); pull is equivalent to doing a fetch followed by a merge   * ''git pull'' --> imports all updates from your default remote repo to your default local repo (usually, this is equivalent to 'git pull origin main'); pull is equivalent to doing a fetch followed by a merge
   * ''git pull origin main'' --> import all updates from remote origin repo to local main repo   * ''git pull origin main'' --> import all updates from remote origin repo to local main repo
Line 75: Line 75:
 ==== Squash Commits ==== ==== Squash Commits ====
  
-If you are in your local working branch and you've pushed up two commits to the remote git repository, you can combine them:+If you have multiple commits in your local branch that you'd like to combine:
  
-  - Verify that you are in your local branch. +  - Use 'git log' to verify that the commits you want to combine are the most recent 
-  - Type: ''git rebase -i origin/main'' +  - Type ''git rebase -i HEAD~2'' (where is the number of commits you wish to combine)
-    * Alternatively if your branch is already built on current main, you can use: ''git rebase -i HEAD~4''   (where is the number of commits you wish to combine)    +
   - Your text editor will open and should show both of the commits, for example:   - Your text editor will open and should show both of the commits, for example:
     * pick 014e59c579 LP#1839359 Select element on login not accessible     * pick 014e59c579 LP#1839359 Select element on login not accessible
     * pick 9de92lsi9a LP#1839359 Select element on login not accessible     * pick 9de92lsi9a LP#1839359 Select element on login not accessible
-  - Change the word "pick" in the second line to "fixup" then save and close the file+  - Change the word "pick" in the second line to either "fixup" or "squash" then save and close the file
     * squash --> merges commits, then allows amendment of commit message     * squash --> merges commits, then allows amendment of commit message
     * fixup --> merges commits like squash does, but discards previous commit message     * fixup --> merges commits like squash does, but discards previous commit message
-  - Push the commit again, and force it to overwrite the previous commits: +  - Use "git commit --amend" if you need to edit the final commit message 
-    * ''git push <nowiki>--force</nowiki> working lp1839359_login_select:user/jdoe/lp1839359_login_select''+  - Push the changes up to your remote working directory as normal 
 +    * ''git push working user/jdoe/lp1839359_login_select'' 
 + 
 +If you've already pushed multiple commits up to your remote working git repository, you can still combine them: 
 + 
 +  - Follow the steps above, but when pushing, use "--force" 
 +    * ''git push <nowiki>--force</nowiki> working user/jdoe/lp1839359_login_select''
  
  
newdevs/git/commands.1700509168.txt.gz · Last modified: 2023/11/20 14:39 by scl

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.