!img
最近做的一个小组合作的作业帮助我了解并且使用了一下git,这篇就像是一篇总结;就自己遇见的问题的一个总结,能力有限,大多知识来源于
git是一个分布式版本库;
版本管理库分为集中式和分布式;分布式的特点是每一个团队成员的电脑上都有都有一个本地的git仓库跟踪整个项目文件的修改;而集中式就是指本地没有仓库只有远程有一个集中所有的修改,成员都要层远程拉取信息
集中式的缺陷:
而分布式就有其相对的优势:
在电脑创造本地仓库
git init
命令完成后在其文件夹内出现.git
(隐藏文件);这就是我们的本地仓库
之后git会跟踪在这个目录(plus1)下所有的修改
当进行了任何的修改之后
git add .
将所有修改加入暂存区git commit -m “信息”
将修改放入当前分支git status
可以查看当前的修改了什么,什么还没有加入暂存区什么已经加入在.git
文件夹中信息
git reset
就是会退到上一个commit
的状态; HEAD
永远指向当前的版本,而HEAD^
就是回退到上HEAD
的上一个 当然也可以使用~3
指定回退3个版本
同样也可以HEAD^^
回退到前2个版本
还可查看其每个版本的版本号回到特定的版本;通过git log
查看每一次提交的信息
commit后面的就是其版本号;回退到b6452c 的版本
将自己的修改递交到远程
git push origin <分支名>
提交时当出现本地的提交落后与远程仓库
拉取远程仓库的修改
出现冲突,需要手动修改分支;通过查看git status可以看见冲突的文件
查看修改的文件;删除不需要的
push test是只本地的修改,下面是远程的
修改完成之后只要在add, commit, pull 即可完成冲突的修改
再进行push就可以把自己的修改更新到远程
【先有远程库后有本地库】假设你已经在本地自己init
创造出来了一个.git
文件;然后想要从远程加载一个已有更改的仓库;首先使用git remote add origin ...
添加远程仓库get remote -v
查看到添加成功
这个时候想要得到远程仓库的东西;使用git pull
会出现以下问题
而使用指定分支和创建跟踪信息的时候
问题:分支master
不存在,git branch -a
查看所有branch
对比另一个可以正常工作的git仓储发现,真的没有master
通过查询资料发现,master在初始化后并不存在而是要进行一次git add
和git commit
之后才存在
再增加新的东西之后可以git branch --set-upstream-to=origin/master master
但是pull的时候会出现偏离
事实上是因为我没有先进行git clone ....
; 先有远程仓库再有本地仓库就是要先git clone
git clone
之后的分支情况如下;有master
并且使用git push -u origin master
是指
-u
将push的分支和本地现在的分支设置跟踪信息origin
是默认值远程仓库的名字未完成的问题