标签归档:git

git 常用命令介绍

配置
gamexg@GGentoo ~ $ git config –global user.email “GameXG@Gmail.Com”
gamexg@GGentoo ~ $ git config –global user.name “GameXG”

git-clone git://repo.or.cz/git-gui/git-gui-i18n.git abc
克隆 git://repo.or.cz/git-gui/git-gui-i18n.git 到 abc。不指定 abc 则使用git-gui-i18n。

git-add 添加需要 git 跟踪的文件.
注意:即使是上次提交前已经添加的文件在修改后还是需要再次添加或者使用-a参数执行提交,不然这次提交并不会提交这个文件的修改。

git-rm 从版本库标记指定文件为删除,并删除存在的指定文件。

git-commit 向版本库提交更改。
参数: -a 提交所有已加入版本库的文件的变更(新建但并没有git-add的文件不会被提交,修改和删除已存在版本库的文件将会提交更改。)
参数 -m 变更的注释。没有本参数则会自动打开一个使用环境变量 EDITOR 指定的文本编辑器来输入注释。

注意:如果没有使用-a参数,则只提交从上次提交到现在执行过git-add或git-rm等命令指定的文件才会被提交。即使某些在上次提交前执行git-add也不会提交它的更改。

git-reset 逆转于恢复命令。
–mixed
重置当前版本号为指定版本。清除待提交的文件列表(git-add增加但未git-commit的列表)。不改变任何文件。
–soft
清除待提交的文件列表(git-add增加但未git-commit的列表)。不改变任何文件。
–hard
将工作树中的内容和头索引都切换至指定的版本位置中,也就是说自 之后的所有的跟踪内容和工作树中的内容都会全部丢失。因此,这个选项要慎用,除非你已经非常确定你的确不想再看到那些东西了。 (并不是一点痕迹都没有,在log目录里面还是记录了现在和之前的操作的记录。并且执行git-reset 命令指定为已经之前的版本一样可以成功完成。但是我不确定如果执行git prune-packed之类的命令后是不是还存在。)

git-diff 当前版本和git数据库中的区别,以标准 path 格式显示。

git-branch 分支管理命令
git-branch a # 建立分支a(并不会切换到分支 a ,需要手动执行命令 git-checkout a )
git-branch -D a # 删除分支a
git-branch # 不带参数为查看已存在的分支。

git-merge 分支合并命令
git-merge 分支名称
将指定的分支合并到当前分支。注意:这样会同时将分支的历史提交也全部合并到当前分支。如果不想保留分支的历史提交数据使用 –squash 参数。
–squash 使用本参数将只会合并当前文件,并将被合并的文件标记为代提交。用户需要手动提交。这样就不会将原始分支的提交记录合并到当前分支了。
不知道什么原因 log、 commit 和 message 参数全部无效。

合并冲突
当发生合并冲突时,

参考:
Git 中文教程(可以从网上找到PDF版本)
Git 使用指南(PDF)
使用 Git 管理源代码

Gentoo 下安装 git 及解决 error: git was compiled without libcurl support. 错误

使用
emerge -av dev-util/git
就可以安装,不过在安装前最好先使用
# echo “dev-util/git webdav” >> /etc/portage/package.use
设置 webdav 标志。不然使用http地址时会出现错误。

gamexg@GGentoo ~/git $ git-clone http://www.bitsun.com/git/gittutorcn.git
Initialized empty Git repository in /home/gamexg/git/gittutorcn/.git/
error: git was compiled without libcurl support.
fatal: Don’t know how to clone http://www.bitsun.com/git/gittutorcn.git