git总结
参考资料:
git:http://blog.csdn.net/coder_pig/article/details/54346867
git submodule:https://www.cnblogs.com/nicksheng/p/6201711.html
repo:http://www.worldhello.net/gotgit/04-git-model/060-android-model.html
1. git
1. 概念
工作区: work
缓存区: stage
本地仓库: repository
远程仓库: remote
remote-->repository: fetch/clone
repository-->stage: reset
stage-->work: checkout
work-->stage: add
stage-->repository: commit
repository-->remote: push
文件状态:
tracked(已跟踪) untracked(未跟踪)
1.新建一个文件,该文件处于 Untracked 状态;
2.通过git add命令添加到缓存区,此时文件处于Tracked状态又或者说
此时这个文件已经被版本控制系统所跟踪,而且他处于Staged(暂存)状态;
3.通过git commit命令把暂存区的文件提交提交到本地仓库,此时文件
处于Unmodified(未修改)状态;
4.此时如果去编辑这个文件,文件又会变成Modified(修改)状态;
一:本地操作命令
1. 配置
git config --global user.name 账号 #github账号
git config --global user.email 邮箱 #github邮箱
git config --local user.name 账号 #github账号 本地变量会优先于上面的global全局变量
git config --local user.email 邮箱 #github邮箱
git config --list
git help
2.创建本地仓库
git init 仓库名
git init
3. 添加文件到暂存区/将文件设置为追踪文件
git add 文件名
git add -A 所有文件(包括untracked的)
git add -u 除了未追踪的文件
git add .
4. 将暂存区文件添加入本地仓库
git commit -m "提交说明"
5. 查看工作区和缓存区的状态
git status
git status -s #更加简短
6. 对比内容变化
git diff # 对比工作区和缓存区的差异
7. 查看历史提交记录:如果觉得信息显示太繁琐 可以加上参数 --pretty=oneline
git log
二:版本回退命令
1. 查看当前commit的对比信息
git show 提交id #查看当前commit的对比信息
2. 删除暂存区的文件
git rm 文件名
git commit -m "提交说明"
3. 恢复误删文件
git checkout -- 文件名
4. 版本回退(已经commit)
git reset --hard 版本号 # git log查看,取前七位即可
5. 查看输入指令记录
git reflog
注意:
如果在回退以后又想再次回到之前的版本,git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录。
三:本地分支
git branch 分支名 # 创建分支
git branch # 查看分支
git checkout 分支名 #切换分支
git merge 分支名 #将分支名的分支合并到当前分支
四:远程仓库和远程分支
git remote -v #查看远程仓库状况
git remote add origin 远程仓库地址 #关联本地仓库和远程仓库
git push -u origin master(这个可以是其他的分支名) #提交分支,注意:-u只是在第一次提交的时候需要用到,后面不管是主分支还是其他分支都不需要
git clone 仓库地址 #克隆远程仓库
git remote rm origin # 删除仓库关联
git fetch origin master #获取远程仓库的更新
git merge origin/master #合并
git pull #获取远程仓库的更新并合并,相当于fetch+merge
git push origin 分支名 #将本地分支推送至远程仓库
git push origin 本地分支名:远程分支名 #跟上面含义一样,例如git push origin master:master
2. git Submodule
3. repo