newdevs:git:commands
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| newdevs:git:commands [2019/06/28 19:09] – [Other Commands] tmccanna | newdevs:git:commands [2025/07/24 01:12] (current) – git commit --amend --date=now --no-edit sleary | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Git for Windows | + | **New Developers Working Group** |
| + | ====== | ||
| - | ===== Useful Commands ===== | + | * '' |
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| - | ==== Git Commands | + | ===== Rebase ===== |
| - | * git add myfile.txt --> stage a specific file | + | If your patch is behind |
| - | * git add -A --> stage all modified files in the current | + | |
| - | * 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 and check it out at the same time | + | |
| - | * git checkout master --> switch to master branch | + | |
| - | * git checkout -- docname.tt2 --> resets a file you've changed back to its original state (like an undo / revert changes command) | + | |
| - | * git clone < | + | |
| - | * git commit --> invoke the default text editor to add a commit message | + | |
| - | * git commit -m "my commit message" | + | |
| - | * git commit < | + | |
| - | * git commit < | + | |
| - | * git commit -a --> combine the git add and git commit steps into a single step (does //not// include newly created files) | + | |
| - | * git config < | + | |
| - | * git config < | + | |
| - | * git fetch < | + | |
| - | * git help --> access the built-in Git help documentation. | + | |
| - | * git log < | + | |
| - | * git pull --> imports all updates from your default remote repo to your default local repo (usually, this is equivalent to 'git pull origin master' | + | |
| - | * git pull origin master --> import all updates from remote origin repo to local master repo | + | |
| - | * git pull < | + | |
| - | * git push working mybranchname --> push changes to the remote working directory | + | |
| - | * git push working < | + | |
| - | * git remote -v --> display remote directories | + | |
| - | * git reset HEAD myfile.txt --> unstage a file that has already been staged | + | |
| - | * git reset < | + | |
| - | * 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 < | + | |
| - | * git status --> display status of current branch | + | |
| - | * git version --> displays the installed version of Git | + | |
| - | ==== Other Commands ==== | + | - 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 (>>> | ||
| + | - Type: git add (problem file name) | ||
| + | - Repeat steps 4-6 for each additional problem file | ||
| + | - Type: git rebase < | ||
| - | * cd --> move back to the home folder | + | You can also use the interactive rebase mode to look at a series of commits: |
| - | * cd foldername --> move from the current folder | + | |
| - | | + | - Open the git branch |
| - | | + | - Type: '' |
| - | | + | - (Optional but recommended) Save this pick list to a separate file, for recovery later if things go wrong |
| - | | + | - Choose what to do with each line using the commands listed |
| - | | + | - Save and close the "to do" |
| - | * notepad++ newdocname.txt --> create a new file and open it in notepad++ | + | - Follow the prompts to complete each step you specified |
| - | * notepad++ docname.txt --> edit an existing | + | |
| - | | + | |
| + | If you need to start over, just rebase again and paste in your original pick list. | ||
| + | ===== 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 '' | ||
| + | - 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 " | ||
| + | * squash --> merges commits, then allows amendment of commit message | ||
| + | * fixup --> merges commits like squash does, but discards previous commit message | ||
| + | - Use "git commit --amend" | ||
| + | - Push the changes up to your remote working directory as normal | ||
| + | * '' | ||
| + | |||
| + | 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 " | ||
| + | * '' | ||
| + | |||
| + | ===== Aliases ===== | ||
| + | |||
| + | Shortens normal commands so you type less. You can add them one at a time from the command line: | ||
| + | |||
| + | < | ||
| + | $ git config alias.co checkout | ||
| + | $ git config alias.cp cherry-pick | ||
| + | $ git config alias.br branch | ||
| + | $ git config alias.ci commit | ||
| + | $ git config alias.st status | ||
| + | </ | ||
| + | |||
| + | You can also edit '' | ||
| + | |||
| + | With the above aliases, you would check out main using: | ||
| + | |||
| + | < | ||
| + | |||
| + | ==== Bash Aliases ==== | ||
| + | |||
| + | Mike Rylander suggests using bash aliases so you can skip typing '' | ||
| + | |||
| + | < | ||
| + | # git-related contents of miker' | ||
| + | alias branch=' | ||
| + | alias ci=' | ||
| + | alias co=' | ||
| + | alias dif=' | ||
| + | alias fetch=' | ||
| + | alias lg=' | ||
| + | alias pick=' | ||
| + | alias pull=' | ||
| + | alias push=' | ||
| + | alias stash=' | ||
| + | alias status=' | ||
| + | alias wt=' | ||
| + | </ | ||
| + | |||
| + | With these bash aliases in place, you would check out main using: | ||
| + | |||
| + | < | ||
newdevs/git/commands.1561763387.txt.gz · Last modified: 2022/02/10 13:34 (external edit)