Java教程

git初识

本文主要是介绍git初识,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

!img

最近做的一个小组合作的作业帮助我了解并且使用了一下git,这篇就像是一篇总结;就自己遇见的问题的一个总结,能力有限,大多知识来源于

  • 廖雪峰Git简介
  • learn git branching

git的基本介绍

git是一个分布式版本库;

版本管理库分为集中式和分布式;分布式的特点是每一个团队成员的电脑上都有都有一个本地的git仓库跟踪整个项目文件的修改;而集中式就是指本地没有仓库只有远程有一个集中所有的修改,成员都要层远程拉取信息

集中式的缺陷:

  • 当项目大的时候拉取很费时间
  • 当远程出现了故障整个仓库丧失了就不会再有

而分布式就有其相对的优势:

  1. 分布式本地主机就存储着修改(git仓库只存储修改而不是所有)只需要从远程拉取别人的修改
  2. 因为本地存储着修改,即使远程用来分享所有修改的仓库没有了,团队本地还有他们每个人做的修改只要再找一个主机每个人push上自己的修改就又可以恢复项目

本地仓库

在电脑创造本地仓库

修改

git init 命令完成后在其文件夹内出现.git(隐藏文件);这就是我们的本地仓库

img

之后git会跟踪在这个目录(plus1)下所有的修改

当进行了任何的修改之后

  1. git add . 将所有修改加入暂存区
  2. git commit -m “信息” 将修改放入当前分支
  3. 使用git status可以查看当前的修改了什么,什么还没有加入暂存区什么已经加入

img

.git文件夹中信息

img

版本回退

git reset

img

就是会退到上一个commit的状态; HEAD永远指向当前的版本,而HEAD^ 就是回退到上HEAD的上一个 当然也可以使用~3指定回退3个版本

img

img

同样也可以HEAD^^回退到前2个版本

还可查看其每个版本的版本号回到特定的版本;通过git log查看每一次提交的信息

img

commit后面的就是其版本号;回退到b6452c 的版本

img

远程仓库

将自己的修改递交到远程

git push origin <分支名>

提交时当出现本地的提交落后与远程仓库

img

拉取远程仓库的修改

img

出现冲突,需要手动修改分支;通过查看git status可以看见冲突的文件

img

查看修改的文件;删除不需要的

img

push test是只本地的修改,下面是远程的

修改完成之后只要在add, commit, pull 即可完成冲突的修改

再进行push就可以把自己的修改更新到远程

img


【先有远程库后有本地库】假设你已经在本地自己init创造出来了一个.git文件;然后想要从远程加载一个已有更改的仓库;首先使用git remote add origin ... 添加远程仓库get remote -v查看到添加成功

img

这个时候想要得到远程仓库的东西;使用git pull 会出现以下问题

img

而使用指定分支和创建跟踪信息的时候

img

问题:分支master不存在,git branch -a 查看所有branch

img

对比另一个可以正常工作的git仓储发现,真的没有master

img

通过查询资料发现,master在初始化后并不存在而是要进行一次git addgit commit之后才存在

再增加新的东西之后可以git branch --set-upstream-to=origin/master master但是pull的时候会出现偏离

img

事实上是因为我没有先进行git clone ....; 先有远程仓库再有本地仓库就是要先git clone

git clone之后的分支情况如下;有master

img

img

并且使用git push -u origin master是指

  • -u 将push的分支和本地现在的分支设置跟踪信息
  • origin是默认值远程仓库的名字

未完成的问题

  1. rebase
  2. 有的时候push会要求输入merge的必要性理由,为什么?
这篇关于git初识的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!