原理
- 工作区、暂存区和版本库
- 分支结构
-
origin
-
对象模型
命令
配置
$ git config --global user.name “John Doe”
$ git config --global user.email johndoe@example.com
针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置
$ git config --list
user.name=John Doe
user.email=johndoe@example.com
$ git config user.name
$ git help <verb>
$ git init
$ git add readme.txt
$ git commit –m “xxxx”
$ git status
$ git diff readme.txt
$ git log/git log –pretty=oneline
$ git reset --hard HEAD^
$ git reset --hard 1094a
$ git reflog
$ git checkout -- <file>
$ git reset HEAD readme.txt
$ git rm test.txt
$ git mv README README.md
$ git remote add origin git@github.com:michaelliao/learngit.git
添加本地仓库到远程仓库
$ git push -u origin master
$ git clone git@github.com:michaelliao/gitskills.git
$ git checkout -b dev
$ git merge dev
$ git branch -d dev
$ git stash
$ git stash pop
$ git stash apply stash@{0}
$ git remote –v
$ git push origin dev
$ git pull
$ git rebase
$ git tag v1.0
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
$ git push origin v1.0
$ git tag -d v0.9
Rebase冲突
.ignore
# 以'#' 开始的行,被视为注释.
foo.txt
*.html
!foo.html
# 忽略所有.o 和 .a文件.
*.[oa]
AssetBundles/ 包括子目录
/Data 根目录
git忽略已经被提交的文件
工具
https://git-scm.com/
https://www.sourcetreeapp.com/
submodule
git submodule add http://git.code.oa.com/TCW/Crowdsource-android.git android
git status
git add .getmodules android
git commit -m "add android submodule."
git submodule init
git push
- 修改submodule
- 更新submodule
- 删除submodule