基本配置 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命令
- 查看其他分支下的文件:
git show BRANCH:PATH 如:
git show dev:assets/res/groups/flash_2/lb_1.png.meta
- 合并分支. 如:
将 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
-
git reflog 和 git log 区别.
常见的使用参数:
git reflog --pretty=oneline -
合并当前分支的 commit.
git rebase -i 的使用. -
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