下面列举一些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管理插件也很好用

扩展阅读

gitbook
常用 Git 命令清单
Git教程


yuxiaoxia28
303 声望2 粉丝