Git综合应用及常见问题汇总

系列文章目录

项目实践常用git指令总结


前言

  上一篇文章介绍了Git在项目中常用的基本命令,本篇文章更接近项目实际,主要介绍Git的综合应用及常见问题。

一、综合应用

1.1 文件pull到工作区

	git pull会把本地未提交修改覆盖,因此我们在pull之前需要将当前工作区修改等add到本地存储区后然后使用git stash命令进行暂存。
    git pull的目的是让本地仓库的源码修改合并到远程库中或者实现代码同步,因此,我们pull是为了本地commit 和远程commit 的对比记录,如果没有冲突的时候就直接合并了。
    git pull = git fetch + git merge
    1)$ git stash
      将本地修改暂时存储。可以使用git stash list看到保存的信息,其中stash@{0}为刚才保存的标记。虽然只是显示了commit注释里面的内容,但其实当前的修改记录已经被暂存。

在这里插入图片描述

   2)$git pull
      将远程仓库的分支源码拉到本地仓库,Already up to datae 说明本地仓库和远程仓库同步。

在这里插入图片描述

   3)$ git stash pop
      还原暂存的内容。可能提示当前修改需要保存,即保存的修改相对pull的源码有所改动需要保存。

在这里插入图片描述

1.2 文件push到远程仓库

    push之前我们最好使用pull进行文件同步,确保是在同步前提下作了修改再push。

源于网络

   在推送(push)操作之前,建议使用git show命令检查文件代码变化,默认为最新一条的log.Push成功后,建议在另外一个空的目录中或在另外一台机器上使用 git clone 克隆出完整的文件代码验证。

1.3 撤销工作区的所有修改并删除暂存区文件

   git reset --hard HEAD : 将stage area中未提交的file回滚到之前的commit状态
   git clean -d -f 删除未跟踪的目录和文件

1.4 某个文件夹中含有.git,导致文件夹无法提交

   首先修改根目录下的.gitignore文件并提交。只有先提交了.gitignore文件后,仓库才能在文件提交时“筛选”指定文件夹中的文件,.gitignore文件不能和文件夹修改同时提交。最后提交文件夹的文件。此时,上传到github仓库中的该文件夹就不含.git文件。但是本地仓库中文件夹中仍旧包含该.git文件,方便本地更新相关数据(比如:在线文件升级等)。
   以cJSON在线软件包为例,menuconfig配置下载后,该文件夹中包含.git文件夹,导致整个文件夹无法commit。

在这里插入图片描述

    修改根目录下.gitignore文件,新增忽略规则。

在这里插入图片描述

在这里插入图片描述

   缺点:这种方式提交者可以正常在本地升级软件。但是,从远程仓库下载的版本无法升级软件,因为升级文件夹中不含.git文件。

1.5 修改远程仓库地址

   由于远程git的地址发生变化(git仓库迁移),因此我们需要同步本地仓库到最新的git仓库地址。那么出现一个问题,怎样修改远程仓库地址呢?步骤如下:
   1)首先通过命令行查看本地旧的远程仓库地址
      git remote -v
      其中,v = verbose(详细的)
   2)查看复制最新git所需仓库的URL
      必须为仓库的根目录,而不是某个分支的地址。
   3)通过命令行修改远程仓库地址
      git remote set-url origin [url]
      建议修改后,通过git remote -v再次确认。
     【举例】
      git remote set-url origin http://helloworld.com:2009/ file/template
   4)通过git pull 将远程仓库的源码拉到本地
      可能需要输入用户名和密码进行验证
  【问题】
   Q1:在git pull时出现git remote: HTTP Basic: Access denied 错误。
   A1: 由于本地git配置的用户名、密码与gitlabs上注册的用户名、密码不一致导致。可参考如下连接进行解决:

参考链接

二、问题汇总

Q1. git遇到 modified content 无法提交问题

A1: 这是因为文件夹下存在.git, 导致添加出错。
方案a. 删除掉.git后,尝试重新添加,如果失败使用方案b;
方案b. “先删后增”。备份文件到项目外,然后git add让工作区知道有文件删除,在项目外将.git删除后,复制到原位置,然后再次git add 让工作区知道有文件添加。注意,不能删除后不git add就立马拖进来,这样仍旧会失败。
方案c. 尝试修改.gitignore文件得托管规则,使远程服务器忽略特定文件夹下的.git文件夹。

Q2. 新增文件git status无法显示

A2: git add -f 文件完整路径  其中,-f 为—force
    强制将他们添加进来

Q3. Git报错: OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

在这里插入图片描述

A3: 输入 git config --global http.sslVerify false 禁止掉ssl验证即可。

在这里插入图片描述

三、参考文献

3.1 网络资源

Git语言
快速入门1
快速入门2
Git官网

3.2 书籍

 1)git官方文件
  《Pro Git 第二版(中文版)》

总结


住在布达拉宫, 我是雪域最大的王。

流浪在拉萨的街头, 我是世间最美的情郎。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值