下面列举一些git使用的小技巧,陆续会完善补充
git-提取/合并某分支的部分文件
git中可以使用merge合并分支内容,特殊情况下,我们可能需要将一个分支的部分文件合并到主分支,例如,某个分支的部分功能需要上线,而另一部分功能开发到一半,这时候,我们只需要提交需要上线的代码。当然你可以手动 copy 代码,但git能做到的我们就不要copy代码啦。git中可以使用checkout从某个分支中检出相应文件
使用方法git checkout [branch] -- [file name]
git忽略文件
git可以忽略那些特定的文件和文件夹,这些文件就不会被添加到git仓库了。只需要创建一个名为 .gitignore 然后列出那些你不希望 Git 跟踪的文件和文件夹。你还可以添加例外,通过使用感叹号(!)。
.svn
node_modules
bower_components
.idea
.npm-debug.log
!main.pyc
清除本地分支
本地其实有很多早就被删除的远程分支,可以用 git remote prune origin
全部清除掉,这样再 checkout 别的分支时就清晰多了
基于远程分支创建分支
git checkout -b feature origin/feature
更新本地代码
不知道是什么原因,本地代码更改之后git pull拉取远端代码获取不到最新的,但是显示Already up-to-date
这个时候可以尝试 git status,来显示工作目录和暂存区的状态,再拉取代码
git status
git pull
git checkout 分支名
也可以把HEAD指向最新下载的版本
git reset --hard origin/分支名如master
强制覆盖本地代码
git fetch --all && git reset --hard origin/master && git pull
大小写问题
在当前项目中,早先创建并已经push到远程的文件及文件夹,将名称大小写更改后,git无法检测出更改。git config core.ignorecase false
,关闭git忽略大小写配置,即可检测到大小写名称更改
这样可能会产成两个文件,一个大写文件一个小写文件
找出罪魁祸首
当代码挂了的时候,使用git blame命令可以找出罪魁祸首。这个命令可以将文件中的每一行的作者、最新的变更提交和提交时间展示出来。git blame [file_name]
查看提交内容
- 仅仅想看最近谁有提交,以及提交的描述
git log
- 仅仅想看最后一次的提交
git log -n 1
- 想看到最近一次提交所有更改过的文件
git log -n 1 --stat
- 想看到最近一次提交所有更改的细节
git log -n 1 -p
客户端
Git- Git
TortoiseGit – TortoiseGit
SourceTree – SourceTree
编辑器的Git管理插件也很好用