From 674e8a0eebfa15afe51c6960cec9712fa186ef45 Mon Sep 17 00:00:00 2001 From: John Cowie Date: Thu, 8 Aug 2013 17:38:06 +0100 Subject: Explain git pull default behaviour and the use of --rebase flag. By far the pull command I use the most is 'git pull --rebase', so wanted to add some info to make it clear that that's possible. --- git.html.markdown | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 00f38d60..d8537300 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -310,7 +310,12 @@ Pulls from a repository and merges it with another branch. # Update your local repo, by merging in new changes # from the remote "origin" and "master" branch. # git pull +# git pull => implicitly defaults to => git pull origin master $ git pull origin master + +# Merge in changes from remote branch and rebase +# branch commits onto your local repo, like: "git pull , git rebase " +$ git pull origin master --rebase ``` ### push -- cgit v1.2.3 From c7a1136772588e57a3f9c20be9102a80a6f7f3e8 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 27 Aug 2013 21:23:09 -0700 Subject: Edits --- git.html.markdown | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index d8537300..abe8e3a7 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -2,9 +2,8 @@ category: tool tool: git contributors: - - ["Jake Prather", "http:#github.com/JakeHP"] + - ["Jake Prather", "http://github.com/JakeHP"] filename: LearnGit.txt - --- Git is a distributed version control and source code management system. -- cgit v1.2.3 From 80e8200b55ae3d3c7e0dd3b4f363c2358470980b Mon Sep 17 00:00:00 2001 From: Christos Kontas Date: Tue, 8 Oct 2013 18:48:46 +0300 Subject: [git] Fix typo error in guide --- git.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index abe8e3a7..4b5e466e 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -40,7 +40,7 @@ Version control is a system that records changes to a file, or set of files, ove ### Repository -A set of files, directories, historical records, commits, and heads. Imagine it as a source code datastructure, +A set of files, directories, historical records, commits, and heads. Imagine it as a source code data structure, with the attribute that each source code "element" gives you access to its revision history, among other things. A git repository is comprised of the .git directory & working tree. -- cgit v1.2.3 From 49eed60496327a9a98155db57d58deb7d2c86fae Mon Sep 17 00:00:00 2001 From: Levi Bostian Date: Tue, 3 Jun 2014 11:40:06 -0500 Subject: Add git push -u command to git tutorial. --- git.html.markdown | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 4b5e466e..65e57f05 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -327,6 +327,11 @@ Push and merge changes from a branch to a remote & branch. # git push # git push => implicitly defaults to => git push origin master $ git push origin master + +# To link up current local branch with a remote branch, add -u flag: +$ git push -u origin master +# Now, anytime you want to push from that same local branch, use shortcut: +$ git push ``` ### rebase (caution) -- cgit v1.2.3 From 7bc3a435c6716931addb11251bd40fc13d77ce1a Mon Sep 17 00:00:00 2001 From: miguel araujo Date: Sat, 14 Jun 2014 01:28:20 -0300 Subject: Translating GIT and JSON to pt-br. Added link to further information --- git.html.markdown | 2 ++ 1 file changed, 2 insertions(+) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 65e57f05..618d1906 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -395,3 +395,5 @@ $ git rm /pather/to/the/file/HelloWorld.c * [SalesForce Cheat Sheet](https://na1.salesforce.com/help/doc/en/salesforce_git_developer_cheatsheet.pdf) * [GitGuys](http://www.gitguys.com/) + +* [Git - the simple guide](http://rogerdudler.github.io/git-guide/index.html) \ No newline at end of file -- cgit v1.2.3 From 3a8b9f0fc5397fb824cb49ecf6efd4a0c916b339 Mon Sep 17 00:00:00 2001 From: LOZORD Date: Mon, 24 Nov 2014 19:32:40 -0600 Subject: Added 'git stash'! --- git.html.markdown | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 618d1906..e064122d 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -334,6 +334,55 @@ $ git push -u origin master $ git push ``` +### stash + +Stashing takes the dirty state of your working directory and saves it on a +stack of unfinished changes that you can reapply at any time. + +```bash +# Let's say you've been doing some work in your git repo, but you want to pull from the remote. +# Since you have dirty (uncommited) changes to some files, you are not able to run 'git pull'. +# Instead, you can run 'git stash' to save your changes onto a stack! + +$ git stash +Saved working directory and index state \ + "WIP on master: 049d078 added the index file" + HEAD is now at 049d078 added the index file + (To restore them type "git stash apply") + +# Now you can pull! +git pull +# ...changes apply... + +# Now check that everything is OK + +$ git status +# On branch master +nothing to commit, working directory clean + +# You can see what 'hunks' you've stashed so far: +# Since the 'hunks' are stored in a Last-In-First-Out stack +# our most recent change will be at top +$ git stash list +stash@{0}: WIP on master: 049d078 added the index file +stash@{1}: WIP on master: c264051 Revert "added file_size" +stash@{2}: WIP on master: 21d80a5 added number to log + +# Now let's apply our dirty changes back by popping them off the stack +# 'git stash apply' also works too +$ git stash pop +# On branch master +# Changes not staged for commit: +# (use "git add ..." to update what will be committed) +# +# modified: index.html +# modified: lib/simplegit.rb +# + +# Now you're good to go! + +[Additional Reading.](http://git-scm.com/book/en/v1/Git-Tools-Stashing) + ### rebase (caution) Take all changes that were committed on one branch, and replay them onto another branch. @@ -396,4 +445,4 @@ $ git rm /pather/to/the/file/HelloWorld.c * [GitGuys](http://www.gitguys.com/) -* [Git - the simple guide](http://rogerdudler.github.io/git-guide/index.html) \ No newline at end of file +* [Git - the simple guide](http://rogerdudler.github.io/git-guide/index.html) -- cgit v1.2.3 From 8b442c2497962b3b47844da74a416075313dc428 Mon Sep 17 00:00:00 2001 From: LOZORD Date: Mon, 24 Nov 2014 19:39:44 -0600 Subject: Only bashified the code sections --- git.html.markdown | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index e064122d..7778fdd4 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -336,40 +336,45 @@ $ git push ### stash -Stashing takes the dirty state of your working directory and saves it on a -stack of unfinished changes that you can reapply at any time. +Stashing takes the dirty state of your working directory and saves it on a stack of unfinished changes that you can reapply at any time. -```bash -# Let's say you've been doing some work in your git repo, but you want to pull from the remote. -# Since you have dirty (uncommited) changes to some files, you are not able to run 'git pull'. -# Instead, you can run 'git stash' to save your changes onto a stack! +Let's say you've been doing some work in your git repo, but you want to pull from the remote. +Since you have dirty (uncommited) changes to some files, you are not able to run 'git pull'. +Instead, you can run 'git stash' to save your changes onto a stack! +```bash $ git stash Saved working directory and index state \ "WIP on master: 049d078 added the index file" HEAD is now at 049d078 added the index file (To restore them type "git stash apply") +``` -# Now you can pull! +Now you can pull! +```bash git pull -# ...changes apply... +``` +...changes apply... -# Now check that everything is OK +Now check that everything is OK +```bash $ git status # On branch master nothing to commit, working directory clean +``` -# You can see what 'hunks' you've stashed so far: -# Since the 'hunks' are stored in a Last-In-First-Out stack -# our most recent change will be at top +You can see what 'hunks' you've stashed so far: +Since the 'hunks' are stored in a Last-In-First-Out stack our most recent change will be at top +```bash $ git stash list stash@{0}: WIP on master: 049d078 added the index file stash@{1}: WIP on master: c264051 Revert "added file_size" stash@{2}: WIP on master: 21d80a5 added number to log +``` -# Now let's apply our dirty changes back by popping them off the stack -# 'git stash apply' also works too +Now let's apply our dirty changes back by popping them off the stack +```bash $ git stash pop # On branch master # Changes not staged for commit: @@ -378,9 +383,10 @@ $ git stash pop # modified: index.html # modified: lib/simplegit.rb # +``` +'git stash apply' also works too -# Now you're good to go! - +Now you're ready to get back to work on your stuff! [Additional Reading.](http://git-scm.com/book/en/v1/Git-Tools-Stashing) ### rebase (caution) -- cgit v1.2.3 From 295b40d2724a24e046f75da71b4e43124168b535 Mon Sep 17 00:00:00 2001 From: LOZORD Date: Mon, 24 Nov 2014 19:41:02 -0600 Subject: Small formatting changes --- git.html.markdown | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 7778fdd4..7e9e70de 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -384,9 +384,10 @@ $ git stash pop # modified: lib/simplegit.rb # ``` -'git stash apply' also works too +`git stash apply` does the same thing Now you're ready to get back to work on your stuff! + [Additional Reading.](http://git-scm.com/book/en/v1/Git-Tools-Stashing) ### rebase (caution) -- cgit v1.2.3 From b7f4ca7ea8e831426eeced7b37b09ed1d81a8190 Mon Sep 17 00:00:00 2001 From: LOZORD Date: Mon, 24 Nov 2014 19:44:25 -0600 Subject: Added ourselves to the contributor section --- git.html.markdown | 2 ++ 1 file changed, 2 insertions(+) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 7e9e70de..f94fadee 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -3,6 +3,8 @@ category: tool tool: git contributors: - ["Jake Prather", "http://github.com/JakeHP"] + - ["Leo Rudberg" , "http://github.com/LOZORD"] + - ["Betsy Lorton" , "http://github.com/schbetsy"] filename: LearnGit.txt --- -- cgit v1.2.3 From 0e42f4c928b1414102467f539b313c1646e91093 Mon Sep 17 00:00:00 2001 From: Leo Rudberg Date: Tue, 25 Nov 2014 13:47:03 -0600 Subject: Fixed some markdown formatting issuses --- git.html.markdown | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index f94fadee..04350dd5 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -341,8 +341,8 @@ $ git push Stashing takes the dirty state of your working directory and saves it on a stack of unfinished changes that you can reapply at any time. Let's say you've been doing some work in your git repo, but you want to pull from the remote. -Since you have dirty (uncommited) changes to some files, you are not able to run 'git pull'. -Instead, you can run 'git stash' to save your changes onto a stack! +Since you have dirty (uncommited) changes to some files, you are not able to run `git pull`. +Instead, you can run `git stash` to save your changes onto a stack! ```bash $ git stash @@ -353,10 +353,11 @@ Saved working directory and index state \ ``` Now you can pull! + ```bash git pull ``` -...changes apply... +`...changes apply...` Now check that everything is OK @@ -366,8 +367,9 @@ $ git status nothing to commit, working directory clean ``` -You can see what 'hunks' you've stashed so far: -Since the 'hunks' are stored in a Last-In-First-Out stack our most recent change will be at top +You can see what "hunks" you've stashed so far using `git stash list`. +Since the "hunks" are stored in a Last-In-First-Out stack, our most recent change will be at top. + ```bash $ git stash list stash@{0}: WIP on master: 049d078 added the index file @@ -375,7 +377,8 @@ stash@{1}: WIP on master: c264051 Revert "added file_size" stash@{2}: WIP on master: 21d80a5 added number to log ``` -Now let's apply our dirty changes back by popping them off the stack +Now let's apply our dirty changes back by popping them off the stack. + ```bash $ git stash pop # On branch master @@ -386,6 +389,7 @@ $ git stash pop # modified: lib/simplegit.rb # ``` + `git stash apply` does the same thing Now you're ready to get back to work on your stuff! -- cgit v1.2.3 From 84ac5877f34de7fd57906f8c9a4e14fea4090dcb Mon Sep 17 00:00:00 2001 From: awalGarg Date: Wed, 4 Mar 2015 22:00:00 +0530 Subject: Added the handy -a switch --- git.html.markdown | 3 +++ 1 file changed, 3 insertions(+) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 04350dd5..af65afb0 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -217,6 +217,9 @@ the changes made and a message created by the user. ```bash # commit with a message $ git commit -m "Added multiplyNumbers() function to HelloWorld.c" + +# automatically stage modified or deleted files, except new files, and then commit +$ git commit -a -m "Modified foo.php and removed bar.php" ``` ### diff -- cgit v1.2.3 From bdedf51a72156d925b1814776e272572a9c8e581 Mon Sep 17 00:00:00 2001 From: Avjinder Singh Sekhon Date: Mon, 1 Jun 2015 23:46:04 +0530 Subject: Added 'Stages of Git', link to Pro Git, and other forms of git help --- git.html.markdown | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index af65afb0..dd93dd88 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -79,6 +79,11 @@ this pointer will automatically update and point to the latest commit. HEAD is a pointer that points to the current branch. A repository only has 1 *active* HEAD. head is a pointer that points to any commit. A repository can have any number of heads. +###Stages of Git +* Committed - Files have been committed to the Git Database +* Modified - Changes have been made to a file but file has not been committed to Git Database yet +* Staged - Marks a modified file to go into your next commit snapshot + ### Conceptual Resources * [Git For Computer Scientists](http://eagain.net/articles/git-for-computer-scientists/) @@ -131,6 +136,10 @@ $ git help -a $ git help add $ git help commit $ git help init +# or git --help +$ git add --help +$ git commit --help +$ git init --help ``` ### status @@ -149,8 +158,8 @@ $ git help status ### add -To add files to the current working tree/directory/repo. If you do not `git add` new files to the -working tree/directory, they will not be included in commits! +To add files to the staging area/index. If you do not `git add` new files to the +staging area/index, they will not be included in commits! ```bash # add a file in your current working directory @@ -163,6 +172,8 @@ $ git add /path/to/file/HelloWorld.c $ git add ./*.java ``` +This only addds a file to the staging area/index, it doesn't commit it to the working directory/repo. + ### branch Manage your branches. You can view, edit, create, delete branches using this command. @@ -462,3 +473,5 @@ $ git rm /pather/to/the/file/HelloWorld.c * [GitGuys](http://www.gitguys.com/) * [Git - the simple guide](http://rogerdudler.github.io/git-guide/index.html) + +* [Pro Git](http://www.git-scm.com/book/en/v2) -- cgit v1.2.3 From 470da394f6641dd0a56f48da5bb5f451ea0cbcdc Mon Sep 17 00:00:00 2001 From: Avjinder Singh Sekhon Date: Mon, 1 Jun 2015 23:49:05 +0530 Subject: Fixed some typos --- git.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index dd93dd88..1b83e3a3 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -172,7 +172,7 @@ $ git add /path/to/file/HelloWorld.c $ git add ./*.java ``` -This only addds a file to the staging area/index, it doesn't commit it to the working directory/repo. +This only adds a file to the staging area/index, it doesn't commit it to the working directory/repo. ### branch -- cgit v1.2.3 From 628a4ccfc2d55de69a55622c9cd8a0d9d7819013 Mon Sep 17 00:00:00 2001 From: Avjinder Singh Sekhon Date: Wed, 3 Jun 2015 03:02:38 +0530 Subject: Changed the order of the Stages of Git --- git.html.markdown | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 1b83e3a3..4bbc58e7 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -80,9 +80,9 @@ HEAD is a pointer that points to the current branch. A repository only has 1 *ac head is a pointer that points to any commit. A repository can have any number of heads. ###Stages of Git -* Committed - Files have been committed to the Git Database * Modified - Changes have been made to a file but file has not been committed to Git Database yet * Staged - Marks a modified file to go into your next commit snapshot +* Committed - Files have been committed to the Git Database ### Conceptual Resources -- cgit v1.2.3 From 92eef7f483fd4c1192aab8049e8b2f0e926523e4 Mon Sep 17 00:00:00 2001 From: Jake Prather Date: Sat, 19 Sep 2015 11:07:26 -0500 Subject: Add Udemy's new git tutorial as a resource. --- git.html.markdown | 2 ++ 1 file changed, 2 insertions(+) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 4bbc58e7..bf8fce0c 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -462,6 +462,8 @@ $ git rm /pather/to/the/file/HelloWorld.c * [tryGit - A fun interactive way to learn Git.](http://try.github.io/levels/1/challenges/1) +* [Udemy Git Tutorial: A Comprehensive Guide](https://blog.udemy.com/git-tutorial-a-comprehensive-guide/) + * [git-scm - Video Tutorials](http://git-scm.com/videos) * [git-scm - Documentation](http://git-scm.com/docs) -- cgit v1.2.3 From 6611db502aafc9768254efb45495a9fb20a79c81 Mon Sep 17 00:00:00 2001 From: Ayush Date: Tue, 6 Oct 2015 00:44:05 +0530 Subject: Git: removed some clutter --- git.html.markdown | 68 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 31 deletions(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index bf8fce0c..3b83218c 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -8,17 +8,17 @@ contributors: filename: LearnGit.txt --- -Git is a distributed version control and source code management system. +Git is a distributed version control and source code management system. -It does this through a series of snapshots of your project, and it works -with those snapshots to provide you with functionality to version and +It does this through a series of snapshots of your project, and it works +with those snapshots to provide you with functionality to version and manage your source code. ## Versioning Concepts ### What is version control? -Version control is a system that records changes to a file, or set of files, over time. +Version control is a system that records changes to a file(s), over time. ### Centralized Versioning VS Distributed Versioning @@ -42,8 +42,9 @@ Version control is a system that records changes to a file, or set of files, ove ### Repository -A set of files, directories, historical records, commits, and heads. Imagine it as a source code data structure, -with the attribute that each source code "element" gives you access to its revision history, among other things. +A set of files, directories, historical records, commits, and heads. Imagine it +as a source code data structure, with the attribute that each source code +"element" gives you access to its revision history, among other things. A git repository is comprised of the .git directory & working tree. @@ -54,32 +55,33 @@ The .git directory contains all the configurations, logs, branches, HEAD, and mo ### Working Tree (component of repository) -This is basically the directories and files in your repository. It is often referred to -as your working directory. +This is basically the directories and files in your repository. It is often +referred to as your working directory. ### Index (component of .git dir) The Index is the staging area in git. It's basically a layer that separates your working tree -from the Git repository. This gives developers more power over what gets sent to the Git -repository. +from the Git repository. This gives developers more power over what gets sent +to the Git repository. ### Commit -A git commit is a snapshot of a set of changes, or manipulations to your Working Tree. -For example, if you added 5 files, and removed 2 others, these changes will be contained -in a commit (or snapshot). This commit can then be pushed to other repositories, or not! +A git commit is a snapshot of a set of changes, or manipulations to your Working +Tree. For example, if you added 5 files, and removed 2 others, these changes +will be contained in a commit (or snapshot). This commit can then be pushed to +other repositories, or not! ### Branch -A branch is essentially a pointer that points to the last commit you made. As you commit, -this pointer will automatically update and point to the latest commit. +A branch is essentially a pointer to the last commit you made. As you go on +committing, this pointer will automatically update to ooint the latest commit. ### HEAD and head (component of .git dir) HEAD is a pointer that points to the current branch. A repository only has 1 *active* HEAD. head is a pointer that points to any commit. A repository can have any number of heads. -###Stages of Git +### Stages of Git * Modified - Changes have been made to a file but file has not been committed to Git Database yet * Staged - Marks a modified file to go into your next commit snapshot * Committed - Files have been committed to the Git Database @@ -95,7 +97,7 @@ head is a pointer that points to any commit. A repository can have any number of ### init -Create an empty Git repository. The Git repository's settings, stored information, +Create an empty Git repository. The Git repository's settings, stored information, and more is stored in a directory (a folder) named ".git". ```bash @@ -144,8 +146,8 @@ $ git init --help ### status -To show differences between the index file (basically your working copy/repo) and the current -HEAD commit. +To show differences between the index file (basically your working copy/repo) +and the current HEAD commit. ```bash @@ -172,7 +174,8 @@ $ git add /path/to/file/HelloWorld.c $ git add ./*.java ``` -This only adds a file to the staging area/index, it doesn't commit it to the working directory/repo. +This only adds a file to the staging area/index, it doesn't commit it to the +working directory/repo. ### branch @@ -205,7 +208,8 @@ Updates all files in the working tree to match the version in the index, or spec $ git checkout # Checkout a specified branch $ git checkout branchName -# Create a new branch & switch to it, like: "git branch ; git checkout " +# Create a new branch & switch to it +# equivalent to "git branch ; git checkout " $ git checkout -b newBranch ``` @@ -268,7 +272,7 @@ $ git config --global alias.g "grep --break --heading --line-number" $ git grep 'variableName' -- '*.java' # Search for a line that contains "arrayListName" and, "add" or "remove" -$ git grep -e 'arrayListName' --and \( -e add -e remove \) +$ git grep -e 'arrayListName' --and \( -e add -e remove \) ``` Google is your friend; for more examples @@ -303,7 +307,7 @@ $ git merge --no-ff branchName ### mv -Rename or move a file +Rename or move a file ```bash # Renaming a file @@ -338,7 +342,7 @@ $ git pull origin master --rebase Push and merge changes from a branch to a remote & branch. ```bash -# Push and merge changes from a local repo to a +# Push and merge changes from a local repo to a # remote named "origin" and "master" branch. # git push # git push => implicitly defaults to => git push origin master @@ -347,23 +351,25 @@ $ git push origin master # To link up current local branch with a remote branch, add -u flag: $ git push -u origin master # Now, anytime you want to push from that same local branch, use shortcut: -$ git push +$ git push ``` ### stash -Stashing takes the dirty state of your working directory and saves it on a stack of unfinished changes that you can reapply at any time. +Stashing takes the dirty state of your working directory and saves it on a stack +of unfinished changes that you can reapply at any time. -Let's say you've been doing some work in your git repo, but you want to pull from the remote. -Since you have dirty (uncommited) changes to some files, you are not able to run `git pull`. -Instead, you can run `git stash` to save your changes onto a stack! +Let's say you've been doing some work in your git repo, but you want to pull +from the remote. Since you have dirty (uncommited) changes to some files, you +are not able to run `git pull`. Instead, you can run `git stash` to save your +changes onto a stack! ```bash $ git stash Saved working directory and index state \ "WIP on master: 049d078 added the index file" HEAD is now at 049d078 added the index file - (To restore them type "git stash apply") + (To restore them type "git stash apply") ``` Now you can pull! @@ -410,7 +416,7 @@ Now you're ready to get back to work on your stuff! [Additional Reading.](http://git-scm.com/book/en/v1/Git-Tools-Stashing) -### rebase (caution) +### rebase (caution) Take all changes that were committed on one branch, and replay them onto another branch. *Do not rebase commits that you have pushed to a public repo*. -- cgit v1.2.3 From 7b7ce666b66e897c115879d505104330923919ec Mon Sep 17 00:00:00 2001 From: Ayush Date: Tue, 6 Oct 2015 00:45:40 +0530 Subject: Git: added para for gitignore --- git.html.markdown | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 3b83218c..c32d9c5d 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -144,6 +144,16 @@ $ git commit --help $ git init --help ``` +### ignore (set of) files + +To intentionally untrack file(s) & folder(s) from git. Typically meant for +private & temp files which would otherwise be shared in the repository. +```bash +$ echo "temp/" >> .gitignore +$ echo "private_key" >> .gitignore +``` + + ### status To show differences between the index file (basically your working copy/repo) -- cgit v1.2.3 From 037ff22ef63c5f37b6657e806695bb52f46a7ec3 Mon Sep 17 00:00:00 2001 From: Ayush Date: Tue, 6 Oct 2015 00:46:53 +0530 Subject: Git: added more clone options --- git.html.markdown | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index c32d9c5d..66b890c1 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -232,6 +232,10 @@ to a remote branch. ```bash # Clone learnxinyminutes-docs $ git clone https://github.com/adambard/learnxinyminutes-docs.git +# shallow clone - faster cloning that pulls only latest snapshot +$ git clone --depth 1 https://github.com/adambard/learnxinyminutes-docs.git +# clone only a specific branch +$ git clone -b master-cn https://github.com/adambard/learnxinyminutes-docs.git --single-branch ``` ### commit -- cgit v1.2.3 From e75a9e031bde60fae2c1972b5f6b18571acd4d99 Mon Sep 17 00:00:00 2001 From: Ayush Date: Tue, 6 Oct 2015 00:56:08 +0530 Subject: Git: added few random things --- git.html.markdown | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index 66b890c1..e20a4b88 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -106,15 +106,12 @@ $ git init ### config -To configure settings. Whether it be for the repository, the system itself, or global -configurations. +To configure settings. Whether it be for the repository, the system itself, +or global configurations ( global config file is `~/.gitconfig` ). ```bash # Print & Set Some Basic Config Variables (Global) -$ git config --global user.email -$ git config --global user.name - $ git config --global user.email "MyEmail@Zoho.com" $ git config --global user.name "My Name" ``` @@ -249,6 +246,9 @@ $ git commit -m "Added multiplyNumbers() function to HelloWorld.c" # automatically stage modified or deleted files, except new files, and then commit $ git commit -a -m "Modified foo.php and removed bar.php" + +# change last commit (this deletes previous commit with a fresh commit) +$ git commit --amend -m "Correct message" ``` ### diff @@ -300,8 +300,8 @@ Display commits to the repository. # Show all commits $ git log -# Show X number of commits -$ git log -n 10 +# Show only commit message & ref +$ git log --oneline # Show merge commits only $ git log --merges -- cgit v1.2.3 From 9e605ee35ced12a77f0c0c666c0019d40eaaeea6 Mon Sep 17 00:00:00 2001 From: Ayush Date: Tue, 6 Oct 2015 01:06:15 +0530 Subject: Git: fixed typo --- git.html.markdown | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'git.html.markdown') diff --git a/git.html.markdown b/git.html.markdown index e20a4b88..b1347309 100644 --- a/git.html.markdown +++ b/git.html.markdown @@ -74,7 +74,7 @@ other repositories, or not! ### Branch A branch is essentially a pointer to the last commit you made. As you go on -committing, this pointer will automatically update to ooint the latest commit. +committing, this pointer will automatically update to point the latest commit. ### HEAD and head (component of .git dir) @@ -141,7 +141,7 @@ $ git commit --help $ git init --help ``` -### ignore (set of) files +### ignore files To intentionally untrack file(s) & folder(s) from git. Typically meant for private & temp files which would otherwise be shared in the repository. -- cgit v1.2.3