git使用
1. 安装git:
sudo apt-get install git
git config --global user.name "Your Name"
git config --glocal user.email "Your email" -----------------------
使用global,表示主机所有git都使用这个name,email.
2. 初始化:
mkdir laerngit
cd learngit
git init ------------------------
有个.git目录,跟踪版本库
3. 提交:
git add readme.txt
git commit -m "wrote a readme file." ---------------------
git add可以同时添加多个文件,git commit等于把暂存区内容提交.
4. 回退版本:
git status查看状态
git diff readme.txt查看不同,格式是Unix通用的diff格式.
git log查看提交历史,--pretty=oneline参数:更简洁.
那些复杂的数字是版本号.
git reset --hard HEAD^
其中HEAD是目前版本,^的数量表示回退的次数,100个用HEAD~100
如果知道版本号,也可以git reset --hard 3628164,写前几位就行.
git reflog可以查看每一次命令,可以间接知道版本号.
5. 工作区和暂存区:
平时修改的地方就是工作区,add之后会进入暂存区.
在git status中,Untracked是未添加过的意思.
git commit只会提交暂存区的.
6. 撤销修改:
git checkout -- filename : 回到最近一次commit或add的状态
git reset HEAD filename : 回到最近一次commit的状态
7. 删除文件:
当你删除了文件,然后
git rm filename
git commit就行了.
8. 添加远程仓库
在本地生成公钥私钥.
在远程仓库处添加公钥.
在远程仓库建立仓库(如learngit)
git remote add origin git@github.com:will/learngit.git
注意将will改成自己github账户名
第一次推送使用git push -u origin master,zhu
之后使用git push origin master就行了.
其中origin是远程仓库在本地的代号,可以设置其他的.
克隆远程仓库:git clone git@github.com:michaelliao/gitskills.git
9. 创建分支
git checkout -b dev
-b参数表示创建并切换,相当于:
git branch dev
git checkout dev
git merge dev:将dev合并到当前分支
默认使用fast-forward,快速模式,
git branch -d dev删除分支
10. 解决冲突
合并可能出现冲突
解决冲突的话,直接修改冲突文件即可,在提交.
git log --graph --pretty=online --abbrev-commit
get merge --no-ff -m "merge with no-ff" dev
使用--no-ff参数表示不使用fast-forward,此时多个-m.
且不使用fast-forward,会有历史记录,如果fast模式不会.
11. 分支管理
master: 一般用于版本发布
dev: 总开发分支
bug: 每个人都有自己的bug分支,不用推送
git stash储存现场
git stash list查看储存的现场
git stash apply恢复,再git stash drop
git stash pop恢复的同时删除
feature-xxx:功能分支,强制删除git branch -D branchName
12. 多人协作
git remote查看远程库的信息
git remote -v详细信息
git push origin master
git push origin dev推送本地的分支
git clone git@github.com:will/learngit.git抓取分支
但只有master分支
git checkout -b dev origin/dev:在本地创建和远程对应的分支
如果本地dev分支和远程分支不同:
git pull一般不用接参数
**git branch --set-upstream dev origin/dev建立联系.
前面的命令即将被废除,可以使用git branch --set-upstream-to=origin/dev
13. 标签:
git tag :新建一个标签,默认HEAD,可以指定commit id
git tag -a -m "blala"
git tag查看所欲标签
git tag -d v0.1 删除标签
git push origin v1.0推送标签
git push origin --tags推送所有标签
删除远程标签:
先删除本地: git tag -d v0.9
删除远程: git push origin :regs/tags/v0.9
14. .gitignore
忽略中间文件等
/* : 表示忽略所有文件,支持正则
!*.h : 感叹号是取反操作
15. 配置
git config --global alias.co checkout将co作为checkout别名
总结自廖雪峰先生的教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000