User Tools

Site Tools


newdevs:git:commands

This is an old revision of the document!


New Developers Working Group

Git for Windows

Useful Commands

Git Commands

  • git add myfile.txt –> stage a specific file
  • git add -A –> stage all modified files in the current directory and subdirectories
  • git add . –> (Note the period) stage all modified files in the current directory but not subdirectories
  • git branch –> list existing local branches
  • git branch mynewbranch –> create a new branch
  • git branch -m oldbranchname newbranchname –> change name of branch
  • git branch -D branchname –> delete a local branch (cannot delete a branch you currently have checked out, so switch to different branch first)
  • git checkout mybranch –> check out an existing branch
  • git checkout -b mynewbranch –> create a new branch based on your current branch and check it out at the same time
  • git checkout -b mynewbranch origin/main –> create a new branch based on your main branch rather than on your currently checked out branch
  • git checkout main –> switch to main branch
  • git checkout – docname.tt2 –> resets a file you've changed back to its original state (like an undo / revert changes command)
  • git cherry-pick <hash> –> apply a specific commit to your local branch
  • git cherry-pick -s <hash> –> apply a specific commit to your local branch with your signoff
  • git cherry-pick -s <first hash>^..<last hash> –> 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 clone git://git.evergreen-ils.org/Evergreen.git –> clones a remote repository
  • 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 --amend –> overwrite your last commit message
  • git commit --amend --signoff –> view and amend your sign-off branch
  • git commit --amend --signoff <hash> –> view and amend your signoff for a specific commit on your sign-off branch
  • git commit -a –> combine the git add and git commit steps into a single step (does not include newly created files)
  • git config --global -l –> list all global configuration values
  • git config --global keyname "value" –> create a global value
  • git fetch --all –> refresh your local cache from the remote branches (does not download new branches); equivalent to git remote update
  • git config -e –> show git configuration file
  • git fetch working –> fetches all new branches in the working directory
  • git help –> access the built-in Git help documentation
  • git log --oneline –> list previous commits with their unique ids
  • 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 --rebase origin main –> rebases (rather than merges) new remote changes to your local repository
  • git push working mybranchname –> push changes to the remote working directory
  • git push working --delete mybranchname –> delete a remote branch
  • git push working --force mybranchname –> forces an overwrite on your previous branch
  • git remote -v –> display remote directories
  • git remote show origin –> display remote directories * git remote update –> refresh your local cache from the remote branches (does not download new branches); equivalent to git fetch –all * git reset HEAD myfile.txt –> unstage a file that has already been staged * git reset --hard –> reset a current branch to its original state * * git reset --hard HEAD^ –> remove last commit * git rm badfile.txt –> delete a file (if the file is being tracked, be sure to add a commit message indicating the file has been deleted) * git show <hash> –> display the commit text and differences of the specified commmit * git show --stat –> see what your commit will look like before you push it * git status –> display status of current branch * git version –> displays the installed version of Git * gitk –> use this after committing changes but before pushing them to see what will be pushed ==== Rebase ==== If your patch is behind current main, you'll need to rebase it. - Open the git branch - Type: git rebase origin/main –> rebases the current branch to main (you can do this when you have your branch checked out and changes committed, but have not yet pushed it) - If there are merge conflict errors, type: git status - Open the file with the problem in your preferred text editor (notepad++, vim, nano, etc.) - Look for merge conflict markers in the file (>>>) and correct the problems - Type: git add (problem file name) - Repeat steps 4-6 for each additional problem file - Type: git rebase --continue ==== 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: - Verify that you are in your local branch. - Type: git rebase -i origin/main * Alternatively if your branch is already built on current main, you can use: git rebase -i HEAD~4 (where 4 is the number of commits you wish to combine) - 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 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 * squash –> merges commits, then allows amendment of 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: * git push --force working lp1839359_login_select:user/jdoe/lp1839359_login_select ==== Common Bash Commands ==== * cd –> move back to the home folder * cd foldername –> move from the current folder to a child folder * cd .. –> move up in the folder hierarchy one level * clear –> clears your command window giving you a fresh screen to work with (also, Ctrl-l) * cp myfile.txt myfile.bak –> copies file with new name * diff myfile.txt otherfile.txt –> shows differences between files * echo $ (tab tab) –> returns list of all variables * echo $s (tab) –> returns list of all variables that begin with 's' * echo (variable name) –> returns value of variable * ls –> list visible folders and files in the current folder * ls -a –> lists all of the files and folders in the current folder, including hidden files * ls -l –> lists all of the folders and files in the current folder with additional detail such as last modified timestamp * man (name of command) –> opens manual for that command * mkdir newfoldername –> create a new folder * mv myfile.txt myfolder –> moves file to folder * notepad++ newdocname.txt –> create a new file and open it in notepad++ * notepad++ docname.txt –> edit an existing file in notepad++ * pwd –> see what folder you are currently in * rmdir (myfoldername) –> deletes folder ==== Vim Text Editor ==== The vim text editor is built into the bash console (similar to notepad in Windows). * vim –> opens vim text editor in command mode * vim (filename) –> opens file in vim text editor Vim opens in command mode, which allows a variety of functions, but does not allow direct editing. * i –> puts you into edit mode * esc –> puts you back into command mode from edit mode * :q –> takes you out of vim * :w –> saves your work * :wq –> saves & closes * :set number –> turns on line numbers * ?abc'' –> searches for occurrences of 'abc'
newdevs/git/commands.1689858842.txt.gz · Last modified: 2023/07/20 09:14 by tmccanna

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.