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.threads / discuss / 22407
Re: 3 question about how to use Git .
Subject: Re: 3 question about how to use Git .
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
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