首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Git使用教程

Git是什么?

Git是目前世界上最先进的分布式版本控制系统。

Git有什么特点?

简单易用

可查找记录

高效

什么是分布式版本控制系统?

当前电脑存储备份,服务器也存储备份。当你和你的同事,只修改了部分代码时,此时可以和同事互相传给对方进行修改,这样既提高了效率,又不用网络连接。大大提高开发效率,而且还管理得井井有条。

Git安装

Linux:git

Ubuntu: sudo apt-get install git

Window: 可以直接到官网去下载。https://git-scm.com/

Git使用

1.初始化仓库git init(在该目录下生成一个.git文件)

2.查看仓库状态git status

3.查看修改内容git diff

4.提交修改git add / .表示当前目录下全部文件

5.提交并设置修改记录 git commit -m “”

版本回退

1.查看版本记录 git log / 简化日志显示--pretty=oneline

2.选择回退的版本 git reset --hard

选择以往的回退记录,如果还想回到之前的记录,窗口不要关闭,记录 哈希值,进行返回即可。

注意:如果要回退多个版本时,记得把之前的哈希值,进行记录。避免操作失误的情况发生。

git版本回退原理:

由于git是利用修改指针的指向进行回退版本,所以在回退时的速度是非常快的。

工作区和暂存区

工作区:平常写代码的文件

暂存区:.git文件里的内容。

当第一次提交git add ‘read.md’时,就会生成head文件,此时head文件指向first。

执行git commit -m ‘first’时,利用二进制形式把文件储存在.git里。

撤销修改:如果回退错误的使用 git checkout -- readme.txt 回到最近一次修改的文件

在git里文件删除后,想要恢复的方式

1.git reset HEAD

2.git checkout --

远程仓库的配置

1.创建ssh key。 在客户端里创建ssh密钥,windows利用 git bash执行 ssh-keygen -t rsa -C ‘邮箱’来生成密钥。

2.在git里复制公钥到github进行ssh的配置。

本地关联github仓库

git remote add origin

origin 这个远程库的默认名字,修改后要记住,用来提交项目时使用。

推送文件到github仓库

git push -u origin master

由于远程仓库是空的,我们第一次推送master分支时, 加上了-u参数,git会把本地仓库和github仓库的master分支进行关联。

在以后的推送中可以不加此次参数。

github克隆 git clone

分支管理

git分支管理

合并原理:

git里有 Head 和主分支master。head一直指向master分支。

根据版本的增加,master分支一直指向最新的记录,当在次创建一个env分支。如果env分支内容写完后,想和master分支合并,此时 head的指针指向env分支,同时master分支的指针也会指向env。

红线代表重新指向

1.创建分支

git branch 创建分支,不选择该分支

git checkout -b 创建分支并选择该分支

2.切换分支

git checkout

3.查看所有分支

git branch

4.合并分支

在新创建的分支写完代码时,此时需要合并分支,所有要切换回master分支,让指针重新指向mster分支。

git merge

5.删除分支

合并后就可以安心的删除副分支了

git branch -d

6.查看分支图git log --graph

分支策略

在实际开发中,我们一般用master是用于稳定版本的发布。而dev分支用于开发不稳定阶段。所以开发阶段我们一直使用的是dev分支。

由于git默认使用的是Fast forward模式,这种模式下删除分支后,会丢掉分支信息。

如果加了 --no-ff,就开启普通模式。删除分支后,会保留分支信息,以备再次恢复。

git merge --no-ff -m ‘’dev

Bug分支

git提供了bug分支,在出现bug分支的可以使用stash来进行保护现场。以备以后来修复该分支。

然后创建一个临时分支进行修改该bug。等修复完成后合并这两个分支。最后删除那个修改bug的分支

查看储藏列表

git stash list

应用该储藏分支

git stash apply

Feature分支

当遇到删除分支失败时git branch -d

使用强制删除分支

git branch -D

由于国外的网站上传速度较慢如果想使用国内的仓库时(码云等),如何同时既推送github又推送国内的仓库呢?

git remote addguonei

git pushguoneimaster

git remote addgithub

git pushgithubmaster

搭建git服务器,用于客户端和服务端及时更新

服务端:

1.安装git sudo apt-get install git

2.创建git用户 sudo adduser git

3.创建证书登录 把公钥导入/home/git/.ssh/authorized_keys里,一行一个。

4.初始化仓库 sudo git init --bare sample.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:

sudo chown -R git:git sample.git

5.禁用shell登录

出于安全考虑,第二步创建的git用户不允许登录shell,可通过编辑/etc/passwd文件完成。

找到

git:x:1001:1001:,,,:/home/git:/bin/bash

改为

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们指定的git-shell每次一登录就自动退出。

6.克隆远程仓库:

git clone

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180204G11O7800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券