Git工作流程
四个重要概念:
- workspace:工作区。平常我们开发就是拷贝一个远程仓库的一个分支,然后基于这个分支进行开发,开发的过程就是在工作区进行操作。
- Index/Stage:暂存区。在workspace区域执行
git add
操作,会把文件的一些信息(比如文件名称,文件大小)保存曹暂存区,不会保存文件的实体内容。可以用git status
查看暂存区的状态,标记了工作空间的哪些内容是被Git管理的。 - Repository:本地仓库。执行
git commit
操作,就会把暂存区的内容提交到本地仓库,本地仓库保存了提交过的各个版本。 - Remote:远程仓库。执行push操作,可以把本地仓库内容推送到远程仓库
常用的git操作
创建版本库
git clone <url>
从远程仓库克隆岛本地。首先到github上复制仓库的地址url
,然后在shell里执行git clone url
,然后按下回车键即可,注意,此操作会在本地新建一个和仓库同名的文件夹,所以不需要自己建立这个文件夹了。
git init
初始化本地仓库
修改和提交
git status
查看暂存区的状态,可以看到哪些修改提交到了暂存区,哪些还没有,可以通过git add .
来提交
git diff
查看变更的内容有哪些
git add .
主要作用是把工作区修改的内容提交到暂存区
git add <filename>
只提交自定的文件
git commit -m <message>
把缓存区内容提交到本地仓库,message表示自己写的说明信息
git commit <file1 -m <message>
把暂存区的指定文件提交到本地仓库
git commit --amend -m <message>
修改最后一次提交,使用新的commit替代最后一次提交
查看提交历史
git log
参看项目提交的历史信息
git log -p <file>
查看指定文件的历史提交信息
撤销
git checkout HEAD <file>
撤销指定的未提交文件的修改内容
分支
git branch
显示所有的本地分支有哪些
git checkout <branchn ame>
切换到指定的分支
git banch <newBranch>
创建新的分支
git branch -d <branch name>
删除本地分支
合并
git fetch <remote>
在merge之前,先拉取远程仓库的最新代码到本地
git merge <branch>
合并指定分支到当前分支
一般在merge之后,会出现conflict,这种冲突情况,一般是因为多个用户修改了同一个问题件的同一个区域,需要我们手动接触冲突
merge操作会生成一个新的节点,把E节点和F节点连接到新的节点G上。
如果想要保留完整的历史记录,防止commit history被重置,就应该选择gti merge
如果对D–E分支做git rebase
操作,就会把这个分支合并进来,成为一个干净的历史书,没有历史分支信息。
远程操作
git remote -v
查看远程仓库的信息
git remote add <remote> <url>
添加远程仓库
gti fetch <remote>
从远程仓库拉取代码
git pull <remote> <branch>
拉取远程仓库代码,和本地仓库合并
git push <remote> <branch>
把本地仓库指定分支的代码推送到远程仓库
git push <remote> --all
推送所有分支到远程仓库