On Mon, 24 Dec 2012 20:51:36 -0800 (PST)
shia <zhabgyuan1...@gmail.com> wrote:
> I have used git for a few weeks,and for curiosity I download it's
> source code
> When look through it,I find that maybe a little difficult for
> lacking of an architecture in my mind.
> How can I grasp the main line of such big project.
Not that I want to discourage you, but having difficulty understanding
Git's architecture might make contributing to Git very hard for you.
At first, Git is a set of highly-optimized C programs written by a
bunch of brilliant programmers, and this means the expectations
about the prospective contributors are also very high. I think you
understand what I mean.
Next, regarding that "lack of architecture" issue, it might be
insightful to read the famous rebuttal of C++ and its adepts  given
by Linus Torvalds (the original author of Git) when someone tried to
blame Git developers for not writing Git in C++.
On the other hand, Git includes some technical documentation about its
internal APIs and their usage, and you could read through it to get
better grasp on Git's internals. This documentation is located in the
Documentation/technical directory in the Git sources. You should also
read Documentation/SubmittingPatches document before attempting to
submit a patch. Moreover, unless your patch is trivial or fixes an
obscure bug (say, only exposed on some obscure platform), be sure to
first discuss what you want to do on the main Git list (which is git at
vger.kernel.org, see  for more info). And note that this list is not
for discussing Git development, it's for helping Git newbies to solve
their problems when *using* Git.