git 学习手册

Author Avatar
MagicDo 10月 27, 2019
  • 在其它设备中阅读本文章

Git 是 Linux 发明 者 Linus 开发的一款新时代的版本控制系统。

首先,模式不同。SVN是集中式版本控制系统,GIT是分布式版本控制系统;

其次,传输方式不同。Git把内容按元数据方式存储,而SVN是按文件,所以Git传输速度更快。

​ svn无网络时就没法用了。而git无网络时只是不能和别的机器上的仓库交互而已。
说git有中央服务器的,那其实是管理上视为中央服务器,其实那个仓库和你个人电脑上的仓库的地位在技术上是平等的,只是管理因素设置的不平等而已。

GIT:分布式版本控制,每一台机器都能当做一个中央服务器,即使断网也能提交,更新,没有网络不能远程更新代码而已

git 安装与配置

linux 下gitlab 服务器的安装与配置

git 在Windows下的安装与配置

小乌龟的安装与配置

git 常用命令

git init

这个时候用到 了 第 一个命令, 代表初始化 git 仓库, 输入 git init 之后 会提示:

​ 可以看到 初始化成了 , 至此 git_test 目 录已经是一个 git 仓库了 。

git status

​ 紧接着 我们 输入 git status 命令, 会有如下提示

然后呢,我们在这个文件夹下建立 README.md 后,再查看 git status

​ 这时最主要的是提示 README.md 文件 Untracked files , 就是说 README.md 这个文件还没有被跟踪, 还没有提交在 git 仓库里呢, 而且提 示你可以使用 git add 去操作你想要提交的文件。
​ git status 这个命令顾 名 思义就是查看状态, 这个命令可以算是使用 最频繁的一个命令了 。

git add

​ 上面提示 README.md 文件还没有提交到 git 仓库里, 这个时候我们 可以随便编辑下 README.md文件, 然
后 输入 git add README.md, 然后 再输入 git status :

​ 此时提示以下文件 Changes to be committed , 意思就是 README.md 文件等待被提交, 当 然你可
以使用 git rm –cached 这个命令去移除这个缓存.

git commit

接着 我们 输入 git commit -m “first commit”, 这个命令什么 意思呢? commit 是提交的意思, -
m 代表是提交信息, 执行了 以上命令代表我们 已经正式进行了 第 一次提交。
这个时候再输入 git status , 会提示 nothing to commit。

git log

git log 命令可以查看所有产 生的 commit 记录, 所以可以看到 已经产 生了 一条 commit 记录,
而提交时候的附带信息叫 ‘first commit’ 。

git add & git commit

​ 看到 这里估计很多 人会有疑问 , 我想要提交直接进行 commit 不就行了 么 , 为 什么 先要再 add
一次呢? 首先 git add 是先把改动添加到 一个「暂存区 」 , 你可以理解成是一个缓存区 域, 临
时保存你的改动, 而 git commit 才 是最后 真正的提交。 这样做的好处就是防止误提交

git branch

​ branch 即分支的意思, 分支的概念很重要, 尤其是团 队协作的时候, 假设两 个人都在做同 一
个项目 , 这个时候分支就是保证两 人能协同 合作的最大利 器 了 。 举个例子, A, B俩人都在做同
一个项目 , 但是不同 的模块, 这个时候A新建了 一个分支叫 a, B新建了 一个分支叫 b, 这样
A、 B做的所有代码改动都各自 在各自 的分支, 互不影响, 等到 俩人都把各自 的模块都做完
了 , 最后 再统一把分支合并起来。基本上融平台的项目都是在 dev 分支上的。

​ 执行 git init 初始化git仓库之后 会默认生成一个主分支 master , 也是你所在的默认分支, 也基
本是实 际开发正式环境下的分支, 一般情况下 master 分支不会轻易 直接在上面操作的, 你们
可以输入 git branch 查看下当 前分支情况:

​ 如果我们 想在此基础 上新建一个分支呢, 很简 单, 执行 git branch dev 就新建了 一个名 字叫 dev 的
分支, 这时候分支 dev 跟分支 master 是一模一样的内 容, 我们 再输入 git branch 查看的当 前分
支情况:

但是可以看到 master 分支前有个 * 号, 即虽 然新建了 一个 dev 的分支, 但是当 前所在的分支还
是在 master 上, 如果我们 想在 dev 分支上进行开发, 首先要先切换到 dev 分支上才 行, 所以下一
步要切换分支

1
git checkout dev

一步到位 新建并切换分支

1
git checkout - b dev

这个命令的意思就是新建一个dev分支, 并且自 动切换到 dev 分支。

以上全是一些最基本的Git操作, 而且全是在本地环境进行操作的, 完全没有涉及到 远程
仓库

gitlab 的使用(远程仓库)

设置中文

git clone

git http 和 ssh 的区别:

http 需要账号密码

ssh 需要 ssh key

我们可以使用 http ,然后客户端记住密码,这样不必每次都输入密码。

git clone http://192.168.10.244:8008/duziqiang/test.git

我们切换到 test 文件夹,新建 hello.txt 并查看状态

接着 使用 git add 和 git commit

git pull & git push

之前的 commit 只是将代码 提交到本地仓库,我们还需要将代码推送到远程仓库

一般我们 在 push 之前都会先 pull , 这样不容易 冲突

这样就把本地修改的文件 提交到了 远程仓库

小乌龟使用

克隆时,可以选择分支信息,就把对应分支克隆到本地

解决冲突

eclipse 解决冲突

idea解决冲突

分支合并

合并到哪个分支,就切换到哪个分支

方法一: 直接合并

然后在 该分支上 点击合并

选择提交,然后点击右边三个点

在弹出框选中左下角所有分支,就可以看到所有分支的提交记录

选中要合并的某次提交或者某几次提交

合并成功,将合并后的信息推送到远端

方法二 合并某次提交

双击本次提交

再该次提交上 右键 点击 提取此摘要

日志中就可以看到,合并的提交

然后将合并后的修改,推送到远程

其他

git 教程

github官方教程