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

这篇具有很好参考价值的文章主要介绍了GIT的使用所碰到的问题与解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

什么是GIT?

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

git下载安装

下载地址:Git - Downloading Package

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

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

git clone后文件出现一秒就消失,git,github,java

如何操作git

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

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

git clone后文件出现一秒就消失,git,github,java

步骤二:进行初始化

初始化命令

git init

git clone后文件出现一秒就消失,git,github,java

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

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

git clone后文件出现一秒就消失,git,github,java

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 clone后文件出现一秒就消失,git,github,java

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

查看配置:git config --list

git clone后文件出现一秒就消失,git,github,java

git 基本命令

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

  git add .

git clone后文件出现一秒就消失,git,github,java

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

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

git clone后文件出现一秒就消失,git,github,java

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

  git status

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

git clone后文件出现一秒就消失,git,github,java

git clone后文件出现一秒就消失,git,github,java

查看提交日志信息

  git log

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

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

git clone后文件出现一秒就消失,git,github,java

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 clone后文件出现一秒就消失,git,github,java

git忽略文件

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

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

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

git clone后文件出现一秒就消失,git,github,java

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合并分支冲突

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

git clone后文件出现一秒就消失,git,github,java

git clone后文件出现一秒就消失,git,github,java

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

步骤一: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远程仓库?

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

git clone后文件出现一秒就消失,git,github,java

解决了什么问题:

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

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

git代码托管平台

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

常见的代码托管平台:

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

gitee 码云,创建远程仓库:

1. 新建仓库

2. 输入仓库名

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

新建右上角仓库

git clone后文件出现一秒就消失,git,github,java

输入仓库名

不勾初始化!!!

git clone后文件出现一秒就消失,git,github,java

点击创建

git clone后文件出现一秒就消失,git,github,java

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

git clone后文件出现一秒就消失,git,github,java

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

git clone后文件出现一秒就消失,git,github,java

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

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

git clone后文件出现一秒就消失,git,github,java

git clone后文件出现一秒就消失,git,github,java

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

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

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

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

仓库地址如图:

git clone后文件出现一秒就消失,git,github,java

例子: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一次。

git clone后文件出现一秒就消失,git,github,java

注释逻辑:

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

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

后台管理系统

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 别名 分支名文章来源地址https://www.toymoban.com/news/detail-764539.html

到了这里,关于GIT的使用所碰到的问题与解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文了解IntelliJ IDEA如何使用git上传代码到GitHub(附常见问题解决方案)

    本文对应知识库文档(持续更新常见问题解决方案中ing) IntelliJ IDEA使用以及下载 (yuque.com) IDEA使用 git 参考链接 https://www.cnblogs.com/chenchenzi/p/14923708.html 解决访问Github出现的Couldn‘t connect to server错误 解决访问Github出现的Couldn‘t connect to server错误-CSDN博客 解决IDEA中用Git推送时

    2024年02月04日
    浏览(67)
  • 关于git clone error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054解决方案

    昨天在拉取代码的时候遇到一个问题,先是显示超时,后来显示 $ git clone https://github.com/xxx Cloning into \\\'xxx\\\'... error: RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054 fatal: expected flush after ref listing 这个问题可能是由于Git SSL验证失败导致的 在命令行中输入 git config --global h

    2024年03月24日
    浏览(57)
  • git 相关问题与解决方案

    选择一个专用目录下右击打开git bash       假设你正在开发一个新功能,还没开发完成。但是团队成员A最近开发了B功能,这个功能最近上线后合并到master了,此时你要拉取master最新代码到你的分支中。 错因1 :可能是因为在网页中手动修改了远程仓库中的文件,导致一些文

    2024年02月10日
    浏览(49)
  • git无法使用git协议clone github仓库问题解决

    提示错误: 首先登录github账号,检查本机的 ~/.ssh/id_rsa.pub 是否添加到github账号 https://github.com/settings/keys 如果没有添加,需要先添加本机的ssh公钥到github 然后再重试 git clone  如果依然报错,需要检查 ~/.ssh/known_hosts  ,找到github.com开头的行,然后删除 再次重试 git clone 此时提示需要

    2024年02月12日
    浏览(49)
  • git出现的若干问题以及解决方案

    目录 git clone: 1.Failed to connect to github.com port 443 after 21071 ms: Timed out 2.fatal:OpenSSL SSL_read: Connection was reset, erron 10054 3.想git clone特定分支怎么办? git push: 1.fatal, ref 2.GnuTLS recv error (-110): The TLS connection was non-properly terminated .git文件瘦身 如何查看git暂存区的文件 能ping通github.com,但

    2024年02月08日
    浏览(40)
  • linux git clone出现OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to huggingface.co:443解决方案

      大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作

    2024年02月08日
    浏览(66)
  • linux git clone出现fatal: unable to access Failed to connect to github.com port 443: Timed out解决方案

      大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的

    2024年02月13日
    浏览(72)
  • Git无法提交空文件夹问题解决方案

    Git无法提交空文件夹问题解决方案 在使用Git进行版本控制时,经常会遇到需要提交空文件夹的情况,特别是在Java项目开发中。然而,Git本身对空文件夹的处理并不友好,无法直接提交空文件夹到版本库中。本文将介绍一种解决方案来处理这个问题,并提供相应的源代码示例

    2024年02月03日
    浏览(52)
  • git提交到远程仓库 Git HEAD detached from origin(冲突解决后无法正常push) 问题的解决方案

    目录 一、Git提交代码的流程 二、将本地项目发布到gitee上 将本地代码库与远程代码库相关联 强制把远程仓库代码拉取到到当前分支上面。ps:如果仓库为空这一步可以跳过 三、git提交代码--修改提交的地址 四、获取密钥 Git HEAD detached from origin(冲突解决后无法正常push) 问题

    2024年02月03日
    浏览(70)
  • 【GIT】GIT的基本使用 及 使用过程中各种错误的解决方案

    【GIT】本地和远程test关联 【GIT】当前本地分支与远程关系解除(及解除后再次绑定) 【GIT】分支校验 【GIT】基于IDEA使用GIT提示:无法将“awk\\\"项识别为 cmdet、数、脚本文件或可运行程序的名称。请检查名称的排写,如果包括 【GIT】看时间段内个人代码行数(记得修改作者名

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包