Git小技巧

Eddy 发布于2013-6-24 13:44:3 分类: 知识积累 已浏览loading 网友评论0条 我要评论

一些平时遇到的小问题,记录在此,方便查阅。


1、如何合并其他分支上的部分文件或目录?


比如你有两个分支develop、feature,当前处于develop分支,现在你想合并feature分支上的/path/somefile.php文件,而不想合并整个feature分支,该如何实现呢?


可以用下面的命令:


git checkout feature /path/somefile.php


此时,用git status命令发现develop分支上的/path/somefile.php文件已变为feature分支上的/path/somefile.php文件,接下来git add、git commit即可。



2、如何删除错误的提交(commit)?


首先git log查看commit日志,确定回滚到哪一个版本。然后git reset --hard xxxx即可。(xxxx为回滚到该版本的hash)


参数--hard,默认选项是--mixed, 第三个选项是--soft。

--hard是最强的选项,将当前版本设置为某个历史版本后(通过修改引用文件/refs/heads/master来实现),staging和working area的内容也和那个历史版本完全一致。这就意味着你的某些文件可能就失踪了。

--mixed是默认选项,它修改引用文件,不改变working area的文件,但是staging 内容已经和历史版本一致。

--soft是最弱选项,它只修改引用文件,不改变staging和working area的文件。



3.如何在Windows系统中实现git hooks的相关功能?


我们知道在.git/hooks目录下有一系列脚本文件,作用是实现git动作的hook功能。具体的相关功能可参考相关文档。这里以post-commit为例,说明下如何在windows中使用。


关键是post-commit文件的写法。如果你直接写命令,如:


echo 123


则会提示:error: cannot spawn .git/hooks/post-commit: No such file or directory 错误。


效仿linux,第一行这样写:


#! C:\windows\cmd


echo 123


不报错,但得不到预期的结果。


正确方法应该是在第一行这样写:


#! C:\Program Files\Git\bin\sh


echo 123


其中,黑体部分是你电脑上sh.exe的路径。


提交一次看看,看是否成功:)



4.如何修改远程仓库的提交地址?


办法1:git remote set-url remote_name new_url


办法2:先删后加


git remote rm remote_name


git remote add remote_name new_url 


办法3:直接修改本地仓库目录下的.git/config文件

已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/skill/882.html     欢迎订阅Eddy Blog

关于 git  技巧  的相关文章

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言