0


GIT的使用所碰到的问题与解决方案

这个里面包含了git的基本概念、git的命令、关于项目的本地仓库的创建

所谓的GIT就是用于存档,备份,允许我们的代码有容错的机会,比如:玩游戏魂斗罗小游戏前几关很简单很容易,到后面越来越难,如果没有存档机制我们几条命用完之后,再重新去跑、玩,会非常非常浪费时间,这样用户体验就很不好,如果我们给1-10关做一个存档,后面会从11关开始,这样可以提升我们的游戏体验,减少无用的时间浪费,这样就是游戏存档的意义,接下来我们写代码?一次性正确的写完所有功能难度很大,如果没有存档机制,代码突然被误删了、大量写错的情况下、多人协助的情况下,这样我们需要重写备份,所以我们写代码需要存档机制且这个存档意义是重大的。

什么是GIT?

git是一个版本控制系统,作用域代码备份(支持多人协作),且是免费开源的的软件

git下载安装

下载地址:Git - Downloading Package

注意点:不要安装在中文目录下

装好后:右击查看有如图就是装好,有Git GUI Here与Git Bash Here

如何操作git

在刚开始的时候,我们创建的项目是没有被GIT管理的,当我们希望使用git来管理当前的项目

步骤一:打开当前的项目文件夹,在文件夹内右击如图:

步骤二:进行初始化

初始化命令

git init

在文件内会有如图文件:如没有在文件夹上方的查看按钮,将隐藏项目打开即可

注意:不要去修改.git文件夹下的任意东西

git有三个区:工作区 => 暂存区 => 仓库区

1、工作区:就是书写代码的地方,

2、暂存区:暂存提交代码的地方

  git中无法直接从工作区提交到仓库区里面去,必须经过暂存区

  目的就是避免误操作

3、仓库区:代码永久存储区,每次存入git仓库后,会生成版本号,可以任意回退到任何一个具体版本

准备工作:配置提交者信息

我们到公司里面第一时间要进行的配置(user.name是名字用英文)(user.email是邮箱)

配置提交:git config --global user.name heiwuchang

     git config --global user.email xxxxxxxx@163.com

当配置好后,如何去查看配置信息呢?如下就是配置成功了

查看配置:git config --list

git 基本命令

将工作区代码提交到暂存区

  git add .

将暂存区代码提交到仓库区

  git commit -m ‘这个里面放的提交说明’

查看文件状态,就是查看当前文件是存在工作区还是暂存区

  git status

注意:简写命令:git status -s

查看提交日志信息

  git log

注意:简写命令:git log --oneline

** 使用命令:**git reflog 可以查看作用版本的信息

git add 的作用:将工作区文件添加到暂存区

将index.html添加到暂存区

  git add index.html

将css目录下所有的文件添加到暂存区

  git add css

将当前目录下所有的js文件添加到暂存区

  git add *.js

git commit 的作用:将暂存区文件添加到仓库区

将文件从暂存区提交到仓库区

  git commit -m "放提交的说明"

如果不是一个已经暂存过的文件,可以快速的提交,如果是未追踪的文件及时未提交过的文件,那么这个命令不会生效

  git commit -a -m "提交说明"

只会修改最近的一次提交说明,如果提交说明不小心输错了,可以使用这个命令

  git commit --amend -m "提交说明"

git reset 的作用:版本回退,将代码恢复到已经提交的某一处版本中

命令:git reset --hard 版本号

注意:可以回退到任意版本,想回到哪个版本就输入哪个版本的版本号

git忽略文件

在仓库中有些文件不想被git管理,可以通过配置从而达到忽视一些文件。

步骤一:在仓库中新建一个.gitignore文件(固定的)

步骤二:将不要被git管理的文件路径,添加到.gitignore中

git分支

什么是分支?为什么要开发分支?那分支的本质又是什么?

作用:分支的存在,可以保证功能开发的独立性。

为了避免与其他人的代码冲突,所以创建自己的分支,完成对应的功能。比如:科幻电影里面的平行宇宙,当你正在电脑前努力学习git的时候,另一个你正在另一个平行宇宙里努力学习Java。如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了git又学会了Java!

分支实质上就是一个指针,指向的是某个提交的版本;每次代码提交后,这个分支指针就会向后移动,保证一直指向最后一次提交的版本

注意:git第一次提交时,就有了一个master的主分支,指向第一个提交版本

git分支相关命令

1、创建分支

  git branch 分支名

2、查看分支/可查看所有分支

  git branch

3、切换分支

  git checkout 切换的分知名

4、合并代码,在当前的分支上,需要把别的分支合并此分支上

  git merge 分支名

5、删除分支

  git branch -d 需删除的分支名

注意:不能在当前分支删除当前分支,需要切换到其他分支才能删除。

注意:master分支是可以删除的,但是不推荐那么做。

6、创建并切换分支(等价于创建分+切换分支)

  git checkou -b 分支名

git合并分支冲突

我们在公司容易遇到多个分支,并且修改到了同一个文件,容易造成冲突的问题。

合并之后出现的冲突并解决冲突:

步骤一:master 分支 —完成了两次提交 git add . + git commit -m ‘’

步骤二:基于主分支的代码,创建两个分支login/register

  git branch login

  git branch register

步骤三:切换到其中一个分支 - login

  git checkout login

步骤四:在login的分支上完成对应的代码,并提交 git add . + git commit -m ‘’

步骤五:切换到其中一个分支 - register

  git checkout register

步骤六:在register的分支上完成对应的代码,并提交 git add . + git commit -m ‘’

步骤七:切换到主分支

  git checkout master

步骤八:合并其他的分支

  git merge login

  git merge register

在这合并完后会出现合并的冲突

步骤九:手动处理 -- 选择想要保留的代码

步骤十:重新再提交 git add . + git commit -m ‘’

git远程仓库

什么是GIT远程仓库?

就是托管在网络中,你项目的版本库,且支持多人协作,共同一起管理远程仓库。

解决了什么问题:

  1. 仓库备份(远程备份不易丢失)

  2. 多人协作(远程仓库同步代码)

git代码托管平台

专门用于 存放远程仓库 的网站平台,就是代码托管平台

常见的代码托管平台:

gitee 码云,国产开源项 目托管平台。免费,访问速度快、纯中文界面、使用友好

gitee 码云,创建远程仓库:

  1. 新建仓库

  2. 输入仓库名

  3. 创建(不勾初始化!!!)

新建右上角仓库

输入仓库名

不勾初始化!!!

点击创建

SSH免密码登陆

git支持多种数据传输协议:

https协议:蒋鹏/test 需要输入用户名和密码

ssh协议:git@gitee.com:jepsonpp/test.git 可以配置免密码登录

注意:在实际公司开发中,ssh 的方式更为常见!更加安全可靠!

每次push或者pull代码,如果使用https协议,那么都需要输入用户名和密码进行身份的确认,非常麻烦。

github为了账户的安全,需要对每一次push请求都要验证用户的身份,只有合法的用户才可以push

使用ssh协议,配置ssh免密码,可以做到免密码往github推送代码

ssh秘钥的作用

ssh key 的作用:实现本地仓库和 gitee平台 之间免登录的加密数据传输。

ssh key 由两部分组成,分别是:

① id_rsa(私钥文件,存放于客户端的电脑中即可)

② id_rsa.pub(公钥文件,需要配置到 gitee平台 中)

私钥加密的信息,只能通过公钥解密。公钥加密的信息,只能通过私钥解密。安全性高。

SSH免密码登录配置

生成ssh key:一台电脑只需要配置一次秘钥

步骤:

  1. 打开 Git Bash

  2. 粘贴如下的命令 ssh-keygen -t rsa

  1. 连续敲击 3 次回车,即可在 C:\Users\用户名文件夹.ssh 目录中生成 id_rsa 和id_rsa.pub 两个文件

  1. 使用记事本打开 id_rsa.pub 文件,复制里面的文本内容

  2. 粘贴配置到 gitee码云 -> 点击头像设置 -> 选中左侧安全设置下ssh 公钥 中即可

tips: mac获取公钥 mac 如何查找ssh key - 掘金

git push 将代码提交到远程仓库

作用:将本地仓库中代码提交到远程仓库

语法:git push 仓库地址 分支名 将代码提交到远程仓库对应分支

仓库地址如图:

例子:git push git@gitee.com:jepsonpp/test.git master

git remote删除分支

每次push操作都需要带上远程仓库的地址,非常的麻烦,我们可以给仓库地址设置一个别名

给远程仓库设置一个别名

  git remote add 仓库别名 仓库地址

  git remote add origin git@gitee.com:jepsonpp/test.git​

# 删除origin这个别名

  git remote remove origin

演示命令:

首次提交需要

git push -u 仓库别名 分支名

tips:-u 可以记录push到远端分支的默认值,将来 git push即可

本地分支比如master和远程仓库建立关联,并且以后提交该分支,直接通过git push,一个本次仓库的分支只需要建立一次即可

git clone 克隆代码

作用:克隆远程仓库的代码到本地

语法:git clone [远程仓库地址] 文件名(test)

如果只想克隆分支:git clone -b 分支名 [远程仓库地址] 文件名

git clone git@gitee.com:jepsonpp/test.git会在本地新建一个test文件夹

在test中包含了一个.git目录,用于保存所有的版本记录,同时test文件中还有最新的代码,可以进行后续的开发。

git克隆默认会使用远程仓库的项目名字,也可以自己指定。

命令:git clone [远程仓库地址] [本地项目名]

tips: git branch -a 查看分支

git pull拉取更新

作用:拉取更新,将远程的代码下载合并到本地的分支

语法:git pull [远程仓库地址] [分支名]

简写:git pull

通常在push前,需要先pull一次。

注释逻辑:

本地仓库和远程仓库是一对一的关系,一个本地仓库 只对应一个远程仓库

比如:张三新创建了一个项目

后台管理系统

1、初始化仓库——提交到本地仓库——创建一个远程仓库——承载/管理本地的代码

移动端的商城项目

1、初始化仓库——提交到本地仓库——再去创建一个远程仓库——装载你当前的商城项目

是一对一的关系

下载远端分支本地

命令:

  git checkout -b 分支名 注意点: 创建的分支名要和远端分支名相同

  git pull origin 分支名

先在本地建立一个分支,并切换到该分支,然后从远程分支上同步代码到该分支上,并建立关联

后续拉取该分支的更新,直接通过 git pull 即可

注释逻辑:

已经存在的本地仓库 李四 lisi

1、将远程仓库中pay分支的代码合并到本地仓库中master分支

现在处在master分支 直接通过git pull origin pay 远程仓库的分支名

进行分支代码的拉取...

2、将远程仓库中的reg分支的代码拉取到本地仓库中的reg分支

问题本地根本没有reg分支?

解决:2.1创建并切换到reg分支

    git checkout -b reg

   2.2拉取

    git pull origin reg

git checkout -t origin/develop #远端分支名和本地新建分支名同名

后续拉取该分支的更新,就是切换到该分支,git pull origin 分支名

Git基本常用命令如下:****

git add .

git commit -m "提交信息"

git commit -a-m "快速提交(前提是已被追踪过 经历工作区到暂存区到工作区的过程)"

git log 查看日志

git log --oneline 简化日志

git status 查看文件状态

git status -s 简化查看文件的状态

git init 初始化仓库 一个项目

git config GIT配置

git reset --hard 版本号 !!不要不些版本号!!

git reflog 查看所有日志

.gitignore 忽视git文件

cls和clear 清除命令

cd(changedirectory) 文件路径:返回上一级文件 cd返回下一级(这不是git命令,而是终端命令)

dir/ls可以拿到文件夹的东西

git --help / git help -a 可以提示命令

git remote set-url origin '这里是你要修改的远程仓库地址' 修改提交代码的远程仓库地址

总结:

将代码提交到远程仓库

  创建一个远程仓库 - 一个远程仓库 对应一个本地仓库 (项目) 1v1的关系

  将本地仓库中的代码提交到仓库区

    git init

    git add .

    git commit -m '提交说明'

  提交到远程仓库

    设置别名

      git remote add 仓库别名 仓库地址

    提交代码 push (将本地代码推到远程仓库)

      git push origin 分支名

      git push -u origin 分支名

       -u 建立关联 将本地仓库的当前分支和远程仓库建立关联 (只需要建立一次即可)

后续该分支就可以通过git push进行提交

刚进入公司, 想获取公司代码

  克隆代码 git clone 仓库地址 可选的文件夹的名字

同事刚提交了代码到远程, 想获取代码 (差异化更新)

  git pull

需求: 将远程仓库的其他分支下载到本地

  创建并切换到(同名)分支 git checkout -b 分支名

  进行更新 git pull 别名 分支名

标签: git github java

本文转载自: https://blog.csdn.net/BXH1010/article/details/130459832
版权归原作者 bianxuehua 所有, 如有侵权,请联系我们删除。

“GIT的使用所碰到的问题与解决方案”的评论:

还没有评论