Difference between revisions of "Git/notes"

from HTYP, the free directory anyone can edit if they can prove to me that they're not a spambot
< Git
Jump to navigation Jump to search
(answered one question)
(another answer)
Line 1: Line 1:
 
==Questions==
 
==Questions==
 +
''questions that have not yet been answered''
  
 
* Given that the four possible conditions for a file are "untracked", "unmodified", "modified" and "staged" (according to [http://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository this]):
 
* Given that the four possible conditions for a file are "untracked", "unmodified", "modified" and "staged" (according to [http://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository this]):
Line 5: Line 6:
 
** '''Q:''' If the four conditions apply to changes (not files), then does it make sense to talk about "staging files"?
 
** '''Q:''' If the four conditions apply to changes (not files), then does it make sense to talk about "staging files"?
 
** '''Q:''' How do you get a list of all the files that have been staged, whether or not they are "modified"?
 
** '''Q:''' How do you get a list of all the files that have been staged, whether or not they are "modified"?
* When <code>git fetch github master</code> returns this:
 
From https://github.com/woozalia/w3tpl
 
  * branch            master    -> FETCH_HEAD
 
:* '''Q:''' Why don't any new files appear in the local folder?
 
:* '''Q:''' What does this mean? (Did anything actually happen, and if so, what?)
 
 
==Answers==
 
==Answers==
 
* When <code>git pull github</code> returns this:
 
* When <code>git pull github</code> returns this:
Line 17: Line 13:
 
:* '''Q:''' How do I figure out what branch I want to use?
 
:* '''Q:''' How do I figure out what branch I want to use?
 
:** '''A:''' See [[Git/branch|git branch]].
 
:** '''A:''' See [[Git/branch|git branch]].
 +
* When <code>git fetch github master</code> returns this:
 +
From https://github.com/woozalia/w3tpl
 +
  * branch            master    -> FETCH_HEAD
 +
:* '''Q:''' Why don't any new files appear in the local folder?
 +
:** '''A:''' Because "fetch" doesn't retrieve files; it just creates a local pointer to the remote branch. (See answer to next question for more details.)
 +
:* '''Q:''' What does this mean? (Did anything actually happen, and if so, what?)
 +
:** '''A:''' This just creates a sort of "pointer" to the remote branch we now need to merge; the pointer is stored in <code>.git/FETCH_HEAD</code>. To actually retrieve the files, <code>git merge FETCH_HEAD</code> tells Git to actually retrieve the files and merge them into the local repository &ndash; the files will now appear in the local folder, with status {{l/same|unmodified}} (i.e. they have been {{l/same|commit}}ted to the local repository).

Revision as of 20:47, 9 March 2015

Questions

questions that have not yet been answered

  • Given that the four possible conditions for a file are "untracked", "unmodified", "modified" and "staged" (according to this):
    • Q: If a staged file becomes "unchanged" when it is "committed", does that mean that it is no longer "staged"? Or should we speak of those four conditions as applying to changes rather than files?
    • Q: If the four conditions apply to changes (not files), then does it make sense to talk about "staging files"?
    • Q: How do you get a list of all the files that have been staged, whether or not they are "modified"?

Answers

  • When git pull github returns this:
You asked to pull from the remote 'github', but did not specify
a branch. Because this is not the default configured remote
for your current branch, you must specify a branch on the command line.
  • Q: How do I figure out what branch I want to use?
  • When git fetch github master returns this:
From https://github.com/woozalia/w3tpl
 * branch            master     -> FETCH_HEAD
  • Q: Why don't any new files appear in the local folder?
    • A: Because "fetch" doesn't retrieve files; it just creates a local pointer to the remote branch. (See answer to next question for more details.)
  • Q: What does this mean? (Did anything actually happen, and if so, what?)
    • A: This just creates a sort of "pointer" to the remote branch we now need to merge; the pointer is stored in .git/FETCH_HEAD. To actually retrieve the files, git merge FETCH_HEAD tells Git to actually retrieve the files and merge them into the local repository – the files will now appear in the local folder, with status unmodified (i.e. they have been committed to the local repository).