分类目录归档:git

SourceTree 多密钥 keys

默认配置下SourceTree 使用 putty 做 git ssh 登陆,每次重启后只会保留一个密钥…次次都需要手动添加其他的密钥,很麻烦。
从网上查了一下,SourceTree 支持多密钥需要修改为 openssh ,并且修改多个配置文件。照着做了,结果还是不行。

最后发现并不需要麻烦的手写配置文件,直接修改使用 openssh ,然后直接点击 工具 => 添加ssh密钥 将多个密钥都加进来,实际使用时将自动选择密钥。不需要麻烦的修改配置文件。

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 管理源代码