git个人学习总结:
git是一个管理代码的版本控制系统,用git init创建一个git可以管理的仓库,这个仓库里有一个工作区,我们最基本的那些命令操作都是在工作区完成,在创建仓库的时候,在工作区里git又自动创建了一个.git文件,这个文件不属于工作区,是git的一个版本库,在版本库里有一个暂存区和一个git自动创建的分支,当我们通过git add向仓库添加文件时,实际上就是添加到了暂存区上面,当我们用git commit来提交全部文件时,实际上是从暂存区把文件上传到了分支上面。
为什么git比其他版本控制系统更优秀,是因为git是根据修改去追踪和管理代码的,而非文件,如果我们修改了文件,而没有add 直接commit的话 修改的文件是上传不到git的
每次我们提交新的文件到master的时候,master就会向前进一步,串成一条时间线,随着你提交的次数越多,这条线也越来越长,head指向当前的master,表示当前分支在master上。
当我们新建一个分支的时候,比如dev,git会自动创建一个名为dev的指针出来,指向master,再把head指针指向分支dev,表示当前分支就在dev上,从现在起,对于工作区的修改和提交都是针对dev的了。
如果我们在dev的工作完成了,我们可以把dev合并到master上面,
就是把master指向dev。
因为创建,合并和删除分支非常快,所以鼓励你使用分支去完成某个任务,这样比直接在master 分支上工作更安全,并且一样效率;
当git不能自动合并时,需要手动解决冲突,在合并。
fast-forward信息,是git告诉我们,合并模式是快速合并,--no--ff表示禁用fast-forward模式。在合并时,加上--no--ff就可以查看的到曾经的合并
。。。。。。。。。。。。。。。。。。
当出现bug的时候,先把工作储藏起来,用git stash。然后在出现bug的分支上创建一个临时分支。然后切换到临时分支,处理完bug后,通过add commit 把正确的内容提交到分支上,然后合并分支。删除临时分支。当我们返回查看工作区时(git stutus),发现工作区是干净的,这时候我们需要使用git stash list命令查看,你会发现,我们之前的工作还在,只需要命令git stash apply恢复之前的工作就行,但是我们醋藏起来的stash内容依然存在,使用git stash drop来删除,或者直接git stash pop 恢复的同时把stash也一起删除。
当项目需要添加新功能时,最好新建一个分支。
多人协作的工作模式:
1,试用git push origin branch-name推送自己的修改
2,失败的话,是因为远程分支比你的本地更新,需要先git pull 把服务器的分支抓取到本地,进行合并,
3,本地提交
4,git push origin branch-name 推送成功
创建标签:
忘记打标签,直接找到提交历史,获取到commitid 然后git tag 标签 commitid