threads / discuss / 22407

Re: 3 question about how to use Git .

Subject: Re: 3 question about how to use Git .

## tl;dr

3 messages between Jan 27, 2010 and Jan 27, 2010.

replies: 2people: 3as markdown or json

honglei junan· Jan 27, 2010, 08:35 UTC · lore
hi,i have three questions seem not not appear in GitFaq,yet confuse me much :
*) since I've already commit many patches before telling git my name
and email,should i roll back and recommit all patches to make my name
in repository?
*) i create a new branch ms_port,and then commit several patches like,
    commit 1->commit 2->commit 3->commit 4
now i just want to change commit2,without change any others,how could
i do it?since i only change the local repository,i think this should
be allowed.
*) when cloning a git repository,the network is broken down.How could
i went on the clone process when the network being OK ?
since the download speed is very low, i really don't want to remove
all things and download them again.
Many thanks.
Crane Cai· Jan 27, 2010, 09:32 UTC · re: honglei junan · lore
On Wed, Jan 27, 2010 at 04:35:53PM +0800, honglei junan wrote:
> hi,i have three questions seem not not appear in GitFaq,yet confuse me much :
> *) since I've already commit many patches before telling git my name
> and email,should i roll back and recommit all patches to make my name
> in repository?

One way I do: #checkout your commits git format-patch since-your-commit #reset head to begin git reset --hard since-your-commit #change your commits in patches, then am git am your-patches

> *) when cloning a git repository,the network is broken down.How could
> i went on the clone process when the network being OK ?
> since the download speed is very low, i really don't want to remove
> all things and download them again.
you need not to remove, just redo clone.
-- 
Best Regards,
- Crane
Jeff King· Jan 27, 2010, 09:52 UTC · re: honglei junan · lore
On Wed, Jan 27, 2010 at 04:35:53PM +0800, honglei junan wrote:
> hi,i have three questions seem not not appear in GitFaq,yet confuse me much :
> *) since I've already commit many patches before telling git my name
> and email,should i roll back and recommit all patches to make my name
> in repository?
You can use filter-branch to do it automatically. Something like:
  export BAD_EMAIL='The Wrong Email in Your Commits'
  export GOOD_NAME='Your Correct Name'
  export GOOD_EMAIL='Your Correct Email'
  git filter-branch --env-filter '
    if test "$GIT_COMMITTER_EMAIL" = "$BAD_EMAIL"; then
      GIT_COMMITTER_NAME=$GOOD_NAME
      GIT_COMMITTER_EMAIL=$GOOD_EMAIL
    fi
    if test "$GIT_AUTHOR_EMAIL" = "$BAD_EMAIL"; then
      GIT_AUTHOR_NAME=$GOOD_NAME
      GIT_AUTHOR_EMAIL=$GOOD_EMAIL
    fi
  '

which will rewrite just the commits with the problem. Note that this will rewrite the history of those commits. If you've shared the old ones with others, they will see them as entirely new commits instead of replacements.

Show 5 quoted lines
> *) i create a new branch ms_port,and then commit several patches like,
>     commit 1->commit 2->commit 3->commit 4
> now i just want to change commit2,without change any others,how could
> i do it?since i only change the local repository,i think this should
> be allowed.
Try "git rebase -i commit1".
> *) when cloning a git repository,the network is broken down.How could
> i went on the clone process when the network being OK ?
> since the download speed is very low, i really don't want to remove
> all things and download them again.

Git doesn't currently support restartable clone. It's something that would be nice to have, but there are some technical issues that make it more difficult than simply starting where we left off (namely that the pack that is being downloaded via the git protocol is generated on the fly). You can find some previous discussions by searching the list for "restartable clone".

-Peff

← back to recent threads