绑定自己的邮箱和用户名
git config --global user.mail "mail"
git config --global user.name "name"
创建版本库
在需要同步的文件夹git init
版本同步
在git中有两个区域,一个是工作区,也就是我们能够看见的文件目录,另一个是暂存区(stage)。在git中分支由指针构成,指向master的指针为HEAD。
版本回退命令:git reset --hard version
,其中的version可以是每一个版本的md值的一部分,也可以是以HEAD作为基准的版本,比如HEAD为HEAD前一个版本,HEAD^为HEAD前两个版本。
撤销修改
撤销工作区修改:git checkout -- file
撤销暂存区修改: git reset HEAD file
:表示把暂存区的修改撤销并重新放回工作区,其实该命令使用通过reset将暂存区回退到工作区。
删除文件
删除工作区文件:rm file
删除工作区文件夹:rm -rf folder
恢复删除的文件或文件夹:git checkout -- filename
添加远程仓库
关联远程库:git remote add origin url
尽量使用ssh的网址
第一次推送master分支的所有内容:git push -u origin master
非第一次向master推送内容:git push origin master
克隆远程库
git clone url
分支管理
创建与合并分支
查看分支:git branch
创建分支:git branch name
创建并跳转分支:git checkout -b name
跳转分支:git checkout name
合并某分支到当前分支:git merge name
删除分支:git branch -d name
分支管理:一般分支需要要分为master、dev和user分支,分别对应版本发布、团队开发和个人开发。每个人应该有自己的分支,进行修改之后向dev分支上提交,最后完全版本再合并到master中去。在合并的时候可以加上--no-ff参数来保存所有历史分支。
使用分支进行bug处理:
- 在自己的工作分支使用
git stash
保存自己的工作区。 - 回到主分支创建一个新的分支处理bug,处理好bug之后回到主分支进行分支合并,然后再删除bug临时分支。
- 回到自己的dev分支,使用
git stash apply
恢复现场,最后使用git stash drop
删除stash的内容;或者直接使用git stash pop
恢复同时删除。
远程库
查看远程库信息:git remote
或git remote -v
一般工作过程为:
- 推送分支:
git push origin branch_name
- 如果推送失败,那么是因为远程库比本地版本更新,因此使用
git pull
试图合并. - 如果合并失败,那么解决冲突,在本地提交
- 如果没有冲突或者冲突被解决,那么使用
git push origin branch_name
推送。
如果git pull
提示“no tracking information",那么说明本地分支和远程分支没有关联,使用命令git branch --set-upstream to branch_name origin/branch_name
绑定远程仓库的方法:git remote add url
标签
标签总是和commit相关的。
git tag tag_name
用于创建标签,默认是HEAD,也可以指定一个commit id。
git tag -a tag_name -m "information"可以指定标签信息。
git tag可以查看所有标签。 删除标签:
git tag -d v0.1推送标签:
git push origin v0.1推送所有标签:
git push --tags删除本地标签:
git tag -d v0.1删除远程标签:先删除本地标签,再删除远程标签
git push origin :refs/tags/tag_name`
文件忽略
修改.gitignore文件
感谢廖雪峰老师。