Penguin
Diff: KernelDevelopmentWithGit
EditPageHistoryDiffInfoLikePages

Differences between version 20 and predecessor to the previous major change of KernelDevelopmentWithGit.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 20 Last edited on Sunday, April 15, 2007 11:38:26 am by IanMcDonald Revert
Older page: version 19 Last edited on Friday, December 1, 2006 8:37:18 am by IanMcDonald Revert
@@ -4,9 +4,9 @@
 <verbatim> 
 git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git mysourcedir 
 </verbatim> 
  
-When people talk about pulling or rebasing, all it really means is transferring the appropriate objects over (usually by rsync) . Provided you have created your own branch that is not a problem. It is not mentioned anywhere but because each change is given a unique number, provided that you have set up a branch (documented in <tt>howto</tt>), you can switch to a different [Git] to rsync off and it works without losing your changes as most [Git]s are based around LinusTorvalds' [Git] tree and everbody just freely exchanges objects (files) around the [Git] trees. I would advise you to commit your objects before rebasing, otherwise a <tt>git checkout -f</tt> will blow your changes away, as rebasing usually changes the branch back to master rather than your own. 
+When people talk about pulling or rebasing, all it really means is transferring the appropriate objects over. Provided you have created your own branch that is not a problem. It is not mentioned anywhere but because each change is given a unique number, provided that you have set up a branch (documented in <tt>howto</tt>), you can switch to a different [Git] and it works without losing your changes as most [Git]s are based around LinusTorvalds' [Git] tree and everybody just freely exchanges objects (files) around the [Git] trees. I would advise you to commit your objects before rebasing, otherwise a <tt>git checkout -f</tt> will blow your changes away, as rebasing usually changes the branch back to master rather than your own. 
  
 David Miller says this about pulling out patches: 
 > If you keep your <tt>.git/ORIG_HEAD</tt> sane, you can use a script like the following to pull your local changes out of a tree one-by-one. It drops them into a directory called <tt>patches/</tt> at the top-level and names them <tt>1.diff</tt>, <tt>2.diff</tt>, <tt>3.diff</tt>, etc. with changelogs prepended to the beginning. I call it <tt>git-mkpatches</tt>. 
  
@@ -48,20 +48,16 @@
 git pull 
 git-reset 
 </verbatim> 
  
-The only exception to this is that it only pulls from the master tree. If you want to pull older tags do the following:  
-> <verbatim>  
-> cd my-tree  
-> rsync -luvaz --progress rsync://rsync .kernel.org/pub/scm/linux/kernel/git/davem/net-2.6.14.git/* .git/  
-> </verbatim>  
+The only exception to this is that it only pulls from the master tree. If you want to pull older tags you will need to issue other commands
  
 If you want to then work on an older version then do the following for example if you want to work on 2.6.14: 
 <verbatim> 
 git-reset --hard v2.6.14 
 </verbatim> 
  
-Sometimes after doing a rsync or a git-pull you can have fatal merge errors. The best way to resolve this is often to type git-reset. 
+Sometimes after doing a git-pull you can have fatal merge errors. The best way to resolve this is often to type git-reset. 
  
 If you get funny kernel version numbers when using [Git] it is a "feature" that can be turned off by unsetting CONFIG_LOCAL_VERSION. If you are in the menuconfig you can do this by going to General setup-->Automatically append version information to the version string. 
  
 Most [LinuxKernel] related [Git]s can be found at http://www.kernel.org/git/ which is where you should pull/rebase from if you are doing serious KernelDevelopment. 
@@ -81,17 +77,13 @@
 !Using an origin file 
  
 If you want to do a git pull without having to specify where to get it from everytime edit the file .git/remotes/origin to be in this format where of course you change the URL: 
 <verbatim> 
-URL: rsync ://rsync .kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 
+URL: git ://git .kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 
 Pull: master:origin 
 </verbatim> 
  
-The above format is the default but it is better if you use the git protocol (not supported on all servers) as per below as it is more efficient than rsync and much more efficient than [HTML] which sends everything in a big lump .  
-<verbatim>  
-URL: git: //git .kernel.org/pub/scm/linux/kernel/ git/torvalds/linux -2 .6.git  
-Pull: master:origin  
-</verbatim>  
+In git version 1.5 the above has changed and the file is now in .git/config . There is also a new command git-remote for managing multiple remote repositories
  
 !Using git bisect 
  
 To use git bisect go to the bad code first (normally where you are at) and then type <tt>git bisect start</tt> and then <tt>git bisect bad</tt>