1 Git Tips

[TOC]
Git 常用命令

1. gitignore

git .gitignore 文件只能够忽略 untracked file ,对于已经 tracked 的文件,再加入 .gitignore 文件中是无效的。

若想忽略已经 tracked 的文件,可采取如下方式:

  • git rm -- cached a.conf;将 a.conf 加入到 .gitignore 中,然后 commit & push
  • git update-index --assume-unchanged a.conf

Note:此种方式适用于你对某个文件做了修改,但仅限于 local branch。git update-index --no-assume-unchanged a.conf 命令可将 changes 释放出来。

对于配置文件,git 中可采取如下的方式配置:

remote repository 保存的应该是 a.conf.example 文件,当我们 clone 下来后,cp a.conf.example a.conf,再对 a.conf 进行修改,而 a.conf 应该是 git ignore 的。

2 . cherry-pick

git cherry-pick 用于把另一个本地分支的 commit 修改应用到当前分支。

Note:此命令只会合并当前 commit id 所修改的内容

usage:git cherry-pick

3. log

git log 用于查看版本的提交记录。

usage:git log --pretty=format:"%H , %an , %ar : %s" --stat -1 git log -p -1

4. reset & revert

resetrevert 的区别在于一个主要用于本地版本的回滚一个用于 remote server 上的回滚。

  • reset

usage:git reset --hard commit_id

Tips:可以使用 git reflog 命令来查看命令历史,以便回到回滚之前的版本。

  • revert

usage:git revert commit_id

Note:git revert 使用一次新的 commit 来回滚之前的 commit,所以 HEAD 是一直往前的;而 git reset 是直接删除指定的 commit ,HEAD 是向后移动的。

5. diff

  • 查看尚未暂存的文件更新了哪些部分。git diff
  • 查看已暂存起来的文件和上次提交快照(HEAD)之间的差异。git diff --cached
  • 显示工作版本和 HEAD 的差异。git diff HEAD
  • 显示当前目录和另一个分支的差别。git diff master
  • 显示目录下的某个目录和另一个分支的差别。git diff HEAD -- ./lib

6. stash

git stash save "some message" # save uncommited changes

git stash list # list stashed changes

git stash show stash@{n} # see stash change

git stash apply/pop stash@{n} # apply stash and remove it from the list

git stash drop stash@{n} # drop stash changes

git stash clear # clear all stash changes

git stash branch stash@{n} # create branch base on stash

你可能感兴趣的:(1 Git Tips)