git 基本操作

基本配置 user.name user.email

git config --global user.name "myname"
git config --global user.email "myemail@qq.com"
git config --list //显示配置
git help // 显示帮助

diff

working directory -> staged -> repository
通过 git add 命令将 working directory 加入到 staged 里面
git diff 和 git diff --staged 之间的区别
git diff 比较的是 working directory 与 repository里面的的比较
git diff --staged 比较的是 staged 和 repository 里面的比较

删除和改名

git rm xxx
git mv file1 file2
git commit -am "xxx" // 修改后直接提交

git checkout -- file // 检索出文件file. 执行之前最好检查下 git status
git reset HEAD file // Unstage
git checkout 0a2d875 -- file // 检索出old version的文件

pull request的意思
我尝试用类比的方法来解释一下 pull reqeust。想想我们中学考试,老师改卷的场景吧。你做的试卷就像仓库,你的试卷肯定会有很多错误,就相当于程序里的 bug。老师把你的试卷拿过来,相当于先 fork。在你的卷子上做一些修改批注,相当于 git commit。最后把改好的试卷给你,相当于发 pull request,你拿到试卷重新改正错误,相当于 merge。当你想更正别人仓库里的错误时,要走一个流程:先 fork 别人的仓库,相当于拷贝一份,相信我,不会有人直接让你改修原仓库的clone 到本地分支,做一些 bug fix发起 pull request 给原仓库,让他看到你修改的 bug原仓库 review 这个 bug,如果是正确的话,就会 merge 到他自己的项目中至此,整个 pull request 的过程就结束了。

git命令

  1. 查看其他分支下的文件:
    git show BRANCH:PATH 如:
git show dev:assets/res/groups/flash_2/lb_1.png.meta
  1. 合并分支. 如:
    将 dev分支合并到 master 分支.
git checkout master  // 先切换到master分支
git merge dev  // 可以带上 --no-ff 参数

3.从其他分支merge指定文件到当前分支
git checkout source_branch

4.git将指定文件恢复到某个提交的状态
如:
git checkout b284c80c2648f886266e67ea76348ca7981db8cc assets/xxx.js

  1. git reflog 和 git log 区别.
    常见的使用参数:
    git reflog --pretty=oneline

  2. 合并当前分支的 commit.
    git rebase -i 的使用.

  3. windows下 git 中文乱码解决:
    a. Git bash options UTF-8编码配置
    b. Git 支持 utf-8 编码配置

$ git config --global core.quotepath false   # 显示 status 编码
$ git config --global gui.encoding utf-8   # 图形界面编码
$ git config --global i18n.commit.encoding utf-8   # 提交信息编码
$ git config --global i18n.logoutputencoding utf-8 # 输出 log 编码

c. powershell下中文乱码:
在环境变量中加入:
LESSCHARSET = utf-8

原文地址:https://www.cnblogs.com/daihanlong/p/5638650.html