newdevs:git:commands
Table of Contents
This is an old revision of the document!
New Developers Working Group
Useful Git Commands
git add myfile.txt–> stage a specific filegit add -A–> stage all modified files in the current directory and subdirectoriesgit add .–> (Note the period) stage all modified files in the current directory but not subdirectoriesgit branch–> list existing local branchesgit branch mynewbranch–> create a new branchgit branch -m oldbranchname newbranchname–> change name of branchgit 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 branchgit checkout -b mynewbranch–> create a new branch based on your current branch and check it out at the same timegit checkout -b mynewbranch origin/main–> create a new branch based on your main branch rather than on your currently checked out branchgit checkout main–> switch to main branchgit 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 branchgit cherry-pick -s <hash>–> apply a specific commit to your local branch with your signoffgit cherry-pick -s <first hash>^..<last hash>–> apply a range of commits with your signoff to your local branchgit clean -d -i–> interactively delete untracked files you do not wantgit clean -d -f–> delete untracked folders you do not wantgit clone git://git.evergreen-ils.org/Evergreen.git–> clones a remote repositorygit commit–> invoke the default text editor to add a commit messagegit commit -m "my commit message"–> add brief commit message instead of opening the text editor to add a commit messagegit commit --amend–> overwrite your last commit messagegit commit --amend --author='Jon Doe <example@example.com'–> amend commit authorgit commit --amend --signoff–> view and amend your sign-off branchgit commit --amend --signoff <hash>–> view and amend your signoff for a specific commit on your sign-off branchgit 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 valuesgit config --global keyname "value"–> create a global valuegit config --global user.email "you@example.com"–> set your email addressgit config --global user.name "FIRSTNAME LASTNAME"–> set your namegit fetch --all–> refresh your local cache from the remote branches (does not download new branches); equivalent to git remote updategit config -e–> show git configuration filegit fetch working–> fetches all new branches in the working directorygit help–> access the built-in Git help documentationgit log–> lists most recent commits with detailsgit log --name-only</nowiki'' --> lists first line only of most recent commits * ''git log <nowiki>--oneline–> lists id plus first line only of most recent commitsgit 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 mergegit pull origin main–> import all updates from remote origin repo to local main repogit pull --rebase origin main–> rebases (rather than merges) new remote changes to your local repositorygit push working mybranchname–> push changes to the remote working directorygit push working --delete mybranchname–> delete a remote branchgit push working --force mybranchname–> forces an overwrite on your previous branchgit remote -v–> display remote directoriesgit remote show origin–> display remote directoriesgit remote update–> refresh your local cache from the remote branches (does not download new branches); equivalent to git fetch –allgit reset HEAD myfile.txt–> unstage a file that has already been stagedgit reset --hard–> reset a current branch to its original stategit reset --hard HEAD–> remove last commitgit reset --hard HEAD~2–> remove last 2 commits (increment numeral as needed)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 commmitgit show --stat–> see what your commit will look like before you push itgit status–> display status of current branchgit version–> displays the installed version of Gitgitk–> 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 have multiple commits in your local branch that you'd like to combine:
- Use 'git log' to verify that the commits you want to combine are the most recent
- Type
git rebase -i HEAD~2(where 2 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 either "fixup" or "squash" 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
- Use "git commit –amend" if you need to edit the final commit message
- 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 --force working user/jdoe/lp1839359_login_select
newdevs/git/commands.1724809432.txt.gz · Last modified: 2024/08/27 21:43 by sleary