一些平时遇到的小问题,记录在此,方便查阅。
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。