git 作为一个成熟的版本管理器,是一个相当复杂的工具。如果想要完全掌握,可能需要读一整本书
配置个人信息:在团队协作中这一点极为重要
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
概念
仓库
创建仓库
git init
git clone
创建完仓库后,该文件夹下所有文件同归git管理。
Stage the file 通过git add
来实现。一般从modified到Staged再到Unmodified使用git commit -a
如果不希望一些文件被git管理,那么需要.gitignore来说明。模板
工作区
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
HEAD指向的是当前branch中最新的节点。
git reset HEAD 暂存区的目录树会被重写,被 master 分支指向的目录树所替换,但是工作区不受影响。
git rm --cached <file>会直接从暂存区删除文件,工作区则不做出改变。
git checkout 或者 "git checkout -- <file>会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
协同
- git fetch 远端抓取。
- git merge 与本地当前分枝合并。
- git pull [<远端别名>] [<远端branch>] 抓取并合并= fetch + merge
- git push [-f] [<远端别名>] [<远端branch>] 推送到远端,-f为强制覆盖
基本流程
branch
在进行提交操作时,Git 会保存一个提交对象(commit object)。
当出现新需求或者BUG时,需要创建一个分支。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。