newdevs:git:commands
This is an old revision of the document!
Table of Contents
New Developers Working Group
Git for Windows
Useful Commands
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 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 --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 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 --oneline
–> list previous commits with their unique idsgit 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 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