git简单使用

git简单使用
Git是分布式管理系统。服务端和客户端都有版本控制功能,都能进行代码的提交,合并。
图一
图二

一、本地仓库操作

1、安装git

1.1ubuntu下安装

linux sudo apt-get install git

1.2windows下安装

gitforwindows官网.

2、查看是否安装成功

linux git --version

3.创建本地仓库

3.1 创建一个文件夹用于存放项目文件(mygit)
3.2 新建本地仓库

cd ~/mygit/
初始化 git init # 会创建一个.git的隐藏文件,关于版本控制的
文件都存放在这里,绝对不要改动


接下来是把工作区文件提交到缓存区,在这之前要进行,信息的配置。

配置个人信息

# 配置全局信息 git config --global user.name 'qiyu' 
             git config --global user.email 'qiyu@qq.com' 
# 配置信息会保存在家目录下 ~/.gitconfig

可以查看配置的信息
在这里插入图片描述
也可以配置本项目个人信息

# 配置本项目个人信息 git config user.name 'qiyu' 
                  git config user.email 'qiyu@qq.com' 
# 配置信息存储在当前目录下的.git/config下

4.添加文件

创建好了本地仓库,就准备开始开发了。
在项目文件加下创建readme.txt文件,输入以下内容。
这是一个git学习的项目。
将文件添加到代码库分两步

4.1 先添加到暂存区
git add readme.txt
4.2 提交到仓库
git commit -m 'write a readme file'

git commit命令的,-m参数后输入的内容是提交说明。命令执行成功后显示几个文件被改动,加了多少行。每提交一次就会生成一个版本。

这里还有一个简单操作:当提交到暂存区,可以用 “.” 来表示全部,git add . 可以一次性把当前目录中所有有改动的文件都添加到暂存区。

在这里插入图片描述

5.历史版本

辛勤的工作一段时候,我们提交了很多次了,有很多的版本,怎么查看这些提交记录呢?

git log 或 git reflog

两种方式的区别:

git log不能查看已删除的commit记录
git reflog可以查看所有分支的所有操作记录(),包含已删除的commit记录。

在这里插入图片描述

6.版本回退

两种方法:

6.1git reset --hard HEAD^
  • HEAD表示当前最新版本
  • HEAD^表示当前最新版本的前一个版本
  • HEAD^^表示当前最新版本的前两个版本,以此类推
  • HEAD~1表示当前最新版本的前一个版本
  • HEAD~8表示当前最新版本的前8个版本,以此类推
    当版本非常多时选择这种方法。版本号就是每次commit生成的hash值,只用取前几位数。
6.2git reset --hard 版本号

在这里插入图片描述

7.撤销修改

运行git status命令会显示当前工作区,暂存区,仓库的状态。当工作区的所有代码都提交到仓库 并和仓库保持一致时会显示:

linux On branch master nothing to commit, working tree clean

一旦有修改,git status命令会显示改动的文件,以及你应该怎么提交这些修改。
在这里插入图片描述
当未提交到缓存区,还在工作区的文件为红色显示,
当提交到缓存区,未提交到本地仓库绿色显示。

7.1 撤销工作区代码(未提交到缓存区)
git checkout 文件名

在这里插入图片描述
修改文件后没有执行add,运行此命令可以撤销所有修改,一旦撤销没有后悔药哦,在确定抛弃所有修改时使用。

7.2 撤销暂存区的代码(为提交到本地仓库)
# 第一步:将暂存区代码撤销到工作区 git reset HEAD 文件名 
# 第二步:撤销工作区代码 git checkout 文件名

在这里插入图片描述

8.对比文件

8.1 对比本地仓库与工作区
git diff HEAD -- 文件名

在这里插入图片描述

8.2 对比本地仓库个版本代码
git diff HEAD HEAD^ -- 文件名

在这里插入图片描述

9.文件删除

9.1 删除没有添加进版本库中的工作区中的文件
# 直接删除不用做任何操作
9.2 删除已添加进工作区但没有提交的文件
# 1.先撤回工作区 git reset HEAD 文件名 
# 2.直接删除 rm 文件名

在这里插入图片描述

9.3 已提交到版本库

# 1.删除文件 rm 文件名 
# 2.运行`git add .` git add . 
# 3.提交 git commit -m 'delete some file'

在这里插入图片描述
注意:当文件提交本地仓库时,删除操作不是真正的删除,只是覆盖操作,历史版本是存在的。可以通过撤销操作回到那个版本。

二、远程仓库

要实现多人协作分工,就需要git服务端。对于我们学习来说,自己去搭建一个服务端太费事,再说你写的代码也不是啥国家战略秘密,不用担心给别人看到了。前文提到了github网站,它就是一个git服务端,最重要的是不要钱,很多开源项目都托管在它的上面了。但是它的服务器在境外,国内访问比较缓慢,好消息是,国内也成立了一个网站叫码云不是马云,大家学习git可以通过这个网站,很多国内项目也开始托管在码云上了。
不管是是使用github还是使用码云,步骤是差不多的,区别是github是全英文的慢一点。这里我们以码云为例。
首先你需要注册一个码云的账户,然后创建一个空的仓库。这个在码云上有教程大家自行操作。
创建好仓库后,你的仓库会有两个地址,一个是https,一个是ssh。因为使用https需要输入用户名和密码,推荐使用ssh的方式。要使用ssh你需要设置你账户的ssh公钥。公钥管理

1、准备工作

因此,当我们要使用ssh进行连接时,在进行远程连接之前要配置好ssh。

1.1 生成/添加SSH公钥

码云提供了基于SSH协议的Git服务,在使用SSH协议访问仓库仓库之前,需要先配置好账户/仓库的SSH公钥。
你可以按如下命令来生成 sshkey:

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  
# Generating public/private rsa key pair...

按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_rsa.pub 文件内容,获取到你的 public key

cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....

在这里插入图片描述

复制生成后的 ssh key,通过仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。

在这里插入图片描述
添加后,在终端(Terminal)中输入

ssh -T git@gitee.com

首次使用需要确认并添加主机到本机SSH可信列表。若返回 Hi XXX! You've successfully authenticated, but Gitee.com does not provide shell access.内容,则证明添加成功。

2.添加远程仓库

要把本地仓库和远程仓库联系起来有两种方式:

2.1 克隆

远程仓库里已经存在项目文件,你买了台新电脑,需要将项目从远程仓库clone到本地进行工作。

linux # 首先cd到你要存放项目的目录 cd ~/projects 
# 然后运行下面的命令 git clone git@gitee.com:用户个性地址/tztz.git
2.2 本地初始化一个仓库,设置远程仓库地址后再做push

和第一种方式的区别在于先创建仓库

inux git init	# 创建仓库 git remote add origin git@gitee.com:用户个性地址/tztz.git

3、 推送到远程仓库

当本地工作完成,需要将代码推送到远程仓库,使用git push命令

linux git push origin master

4、 从远程仓库拉取更新到本地仓库

你的同事和你协同开发,他工作的那部分内容完成了,并且已经推送到远程仓库,你接下来的工作需要依赖他的那部分代码,那么你需要将远程仓库代码拉取到本地仓库,使用git pull命令

linux git pull origin master

注意:当从远程仓库推送和拉取时可以用强拉强退操作。

三、分支管理

正常的开发项目中都是多人协作,每个人的任务一般不会一天就完成,如果把没有完成的代码提交到远程仓库会影响被人工作。git提供了分支的功能就不用担心了,可以创建一个自己的分支,在上面干活,想提交就提交,等到工作完成再一次性合并到原来的分支。

3.1 创建分支

新建git仓库时会默认创建一个分支master,它叫主分支。一般情况我们不会直接在主分支上干活,它主要用来发布版本。
创建一个开发分支develop

bash git branch develop

再切换到develop分支

bash git checkout develop 
Switched to branch 'develop'

这两天命令也可以通过一条命令来实现

bash git checkout -b develop

-b参数表示创建并切换。
使用git branch命令查看当前分支

bash git branch 
* develop 
* master

2.合并分支

创建好develop分支后,你开始干活,完成上级领导交给你的任务,根据用户的手机壳颜色更换app主题,5分钟之后开发完毕,提交:

bash $ git add change_theme.py
Administrator@DESKTOP-F3CCKFR MINGW64 ~/Desktop/haha (develop)
$ git commit -m 'complete change theme'
[develop 5b83e32] complete change theme 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 change_theme.py ```

经过测试功能完成,现在我们要合并到master分支
首先切换到master

bash $ git checkout master 
Switched to branch 'master'
Administrator@DESKTOP-F3CCKFR MINGW64 ~/Desktop/haha (develop) $ git commit -m 'complete change theme' [develop 5b83e32] complete change theme 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 change_theme.py ```

查看工作区,你会发现刚才开发的功能文件没有了,不要惊慌,因为那个提交是在develop分支上,现在我们把develop分支的工作合并到master分支上:

bash $ git merge develop
 Updating 7173db6..5b83e32 
 Fast-forward 
 change_theme.py | 0 
 1 file changed, 0 insertions(+), 0 deletions(-) 
 create mode 100644 change_theme.py

git merge命令用于合并指定分支到当前分支。合并后,在查看文件夹发现,change_theme.py文件又回来了。

3.删除分支

合并完之后你也可以删除掉develop分支:

bash $ git branch -d develop 
Deleted branch develop (was 5b83e32). 
$ git branch 
* master
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值