Hi,
The https://git-scm.com/book/en/v2 is a good place for some further 
understanding.

There is also the 
https://github.com/git/git/tree/master/Documentation/technical section 
which include internal details about the Index and the various protocols.

Merge and rebase, and their different purposes, are worth understanding. 
Often, the hardest part  is distinguishing between the 'snapshot' view of a 
commit (which is the real storage) and the 'diff' view of the same commit 
compared to it's parent. A lot of the Git descriptions assume that you will 
know from the context which viewpoint to use! And if you have chosen the 
wrong mental model it will be hard to understand.  E.g. Rebase looks back 
at a sequence of commits as if they are diffs(patches), and then will 
re-apply that sequence of diffs onto a new place, such as the 'upstream' 
(which is poorly documented), so that your work is 'up to date' relative to 
that new place.

Also realise that Git assumes that you will have relatively small diffs 
between commits, and that branches do not last very long, so that the merge 
is easy. Git makes those things easy, especially locally as you do not 
require any permission to do the right thing.

Reset, like checkout, is an overloaded command, so try the new restore 
command https://git-scm.com/docs/git-restore.

hope that helps

On Friday, January 1, 2021 at 5:55:01 AM UTC adlter...@gmail.com wrote:

> Hi.
> Thanks a lot for u sujection!
> I have learned some git concepts in some places, such as the four object 
> tree, blob, tag, commit or hash value generation methods of git. I also 
> learned from https://benhoyt.com/writings/pygit/ Over,
> This content-based addressing method is very interesting.
>
> Of course these are some of the most basic things of git, so I still don't 
> quite understand the principles of git reset/rebase/merge and other 
> commands.
>
> I have a general understanding of strbuf, but my understanding of many 
> different structures is still a mess, such as repository and index.
> I don't know how to organize these content into a whole, that will speed 
> up my content on git.
>
>
> 在2021年1月1日星期五 UTC+8 上午12:38:21<philip...@iee.email> 写道:
>
>> Hi, 
>>
>> Yes, Git can be intimidating at first. 
>>
>> Please remember that really, git is actually hundreds of distinct little 
>> programmes rather than one single big programme that is always 'running' 
>> (like an IDE would), rather it starts, does the small command and stops. 
>>
>> It stores its state in a number of files, such as 'the index' and the 
>> state of actual file/directory content in the 'object store' (all named 
>> by their hash value!). The object store is a superset of 'the 
>> repository'. 
>>
>> The programme directory structure is 'odd' because the 'builtin' 
>> (directory) probably ought to be the top level. Often there are two 
>> files of the same name at those levels. One is the handler, while the 
>> other is the command actions. 
>>
>> Try starting at  git.c #L841 int cmd_main(int argc, const char **argv) 
>> https://github.com/git/git/blob/master/git.c#L841 
>> to see how commands are handled (at least trace it to the various 'help' 
>> actions;-). 
>>
> I have try to use gdb debug git config  ,it's quite difficult :)
>
>> Is there any specific action, task or OS you are most interest in?  You 
>> can search the mail list for "#leftoverbits" 
>>
> I was watching strbuf before,I tried to solve this issue:
> https://github.com/gitgitgadget/git/issues/398 
> but the PR couldn't pass inspection,
> Although my local t/ directory can pass the test. I also don't know where 
> I am wrong
> now, because there may be some things I haven't considered.
> the PR is here:
> https://github.com/gitgitgadget/git/pull/824
>
> Now I am intersting in git ls-files. But I haven't started yet or I don't 
> know how to start it.
>
>> Philip 
>> Seasons Greetings to all. 
>>
>> On 31/12/2020 14:06, 胡哲宁 wrote: 
>> > I have the same problem as you, and I don't know where to start the 
>> > git source code system recently. The first contribution from the 
>> > official git website is indeed helpful. But I still don't know how to 
>> > read the entire git code.I want to know how git  specific sub-command 
>> > operation ,it's difficult ! Every module is very large!How I dive into 
>> > the code instead of staying on the surface? 
>> > 
>> > 在2020年12月31日星期四 UTC+8 下午7:20:35<philip...@iee.email> 写道: 
>> > 
>> > Also, the mailing list archive is available at 
>> > https://lore.kernel.org/git/ <https://lore.kernel.org/git/> and 
>> > https://public-inbox.org/git/?q= 
>> > <https://public-inbox.org/git/?q=> among others. Useful for 
>> > getting a flavour of the discussion and contribution style (Truly 
>> > educational) 
>> > 
>> > Note that the git list has a  no-HTML rule, which results in a 
>> > more compact archive, almost no dross, and ensures folks think 
>> > about what they are saying (usually;-) 
>> > 
>> > Philip 
>> > 
>> > On Thursday, December 31, 2020 at 2:51:22 AM UTC its_sid wrote: 
>> > 
>> > Thanks a ton ! Really appreciate it. 
>> > 
>> > On Thu, 31 Dec 2020 at 08:16, Martin Møller Skarbiniks 
>> > Pedersen <traxp...@gmail.com> wrote: 
>> > 
>> > On Tue, 22 Dec 2020 at 15:07, its_sid 
>> > <siddhi0...@gmail.com> wrote: 
>> > > 
>> > > Hello,I am new here .Can someone please guide me about 
>> > open source contributions here at git ? 
>> > 
>> > Here are a few steps for you: 
>> > 
>> > 1. Read this 
>> > page: https://github.com/git/git/blob/master/README.md 
>> > <https://github.com/git/git/blob/master/README.md> 
>> > 2. Subscribe to the correct mailing list 
>> > 3. Read and understand 
>> > https://github.com/git/git/blob/master/Documentation/SubmittingPatches 
>> > <https://github.com/git/git/blob/master/Documentation/SubmittingPatches> 
>>
>> > 
>> > Regards 
>> > Martin 
>> > 
>> >   
>> > 
>> > -- 
>> > You received this message because you are subscribed to a 
>> > topic in the Google Groups "Git for human beings" group. 
>> > To unsubscribe from this topic, visit 
>> > https://groups.google.com/d/topic/git-users/yb8n-gVroWg/unsubscribe 
>> > <https://groups.google.com/d/topic/git-users/yb8n-gVroWg/unsubscribe>. 
>> > To unsubscribe from this group and all its topics, send an 
>> > email to git-users+...@googlegroups.com. 
>> > To view this discussion on the web visit 
>> > 
>> https://groups.google.com/d/msgid/git-users/CAGAA5bfPA9vMq9iFinGH1re8B%2Bdb%2BtvErRRGK%3DcLzLCXDRD_zQ%40mail.gmail.com
>>  
>> > <
>> https://groups.google.com/d/msgid/git-users/CAGAA5bfPA9vMq9iFinGH1re8B%2Bdb%2BtvErRRGK%3DcLzLCXDRD_zQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>  
>>
>> > 
>> > -- 
>> > You received this message because you are subscribed to a topic in the 
>> > Google Groups "Git for human beings" group. 
>> > To unsubscribe from this topic, visit 
>> > https://groups.google.com/d/topic/git-users/yb8n-gVroWg/unsubscribe 
>> > <https://groups.google.com/d/topic/git-users/yb8n-gVroWg/unsubscribe>. 
>> > To unsubscribe from this group and all its topics, send an email to 
>> > git-users+...@googlegroups.com 
>> > <mailto:git-users+...@googlegroups.com>. 
>> > To view this discussion on the web visit 
>> > 
>> https://groups.google.com/d/msgid/git-users/9abf8782-e2d8-4871-9125-7d17b07f517bn%40googlegroups.com
>>  
>> > <
>> https://groups.google.com/d/msgid/git-users/9abf8782-e2d8-4871-9125-7d17b07f517bn%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>  
>>
>>
> --
> 胡哲宁,
> happy new year. 
>

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/git-users/6a0f6d6f-16c4-409b-84ee-2ee9cc71fea6n%40googlegroups.com.

Reply via email to