Git工具的学习之路

除了常用的git命令外,日常使用git时我们通常还会遇到一些各种各样的问题,本篇文章主要记录个人在使用git时遇到的一些问题,和解决方法

1.PC与UNIX换行符不一致导致多个未修改文件提示被修改
问题描述:
git status,发现很多文件没有修改 但却显示修改了。网上查了下是因为UNIX和PC换行符不一致导致的。 按教程搞敲了命令不生效。后请教同事使用下面命令可行
解决办法:
git config core.filemode false

2.GIT 仓库之间依赖
问题描述
在项目GIT使用中,在一个Git仓库中通常需要链接其他的GIT仓库,用于头文件等子模块管理
解决办法
git submodule add
git add path
git commit
git submodule update --init --recursive

问题描述
如上,在git仓库中增加了子模块,那如何更新子模块的代码呢?
解决办法
a)先提交子模块的修改至子模块git仓库
cd 到子模块修改的位置
git add .
git commit -m “xxx”
git push
b)切换到外部git仓库目录,更新外部仓库依赖的子模块git信息
git submodule update --remote --recursive
git add .
git commit -m “xxx”
git push
3.日常问题
问题描述 “Peer certificate cannot be authenticated with known CA certificates”
解决办法:git config --global http.sslVerify false

4.“.gitignore的基本用法”
部分文件已经提交到远程仓库,则通过.gitignore忽略是无效的,需要清除本地缓存再提交

  1. git rm -r --cached .
  2. git add .
  3. git commit -m ‘update .gitignore’

5.子模块更新
问题描述:git仓库可能依赖一些其他的子模块(专门用于存放头文件的git仓库),当子模块的url更新时应该如何处理呢?
解决办法:
1.git config submodule..url
(这里submodule-name可以通过在git仓库中通过git config -l,如下include/osa即为submodule-name,new-url为新的子模块url)

$ git config -l
...
submodule.include/osa.active=true
submodule.**include/osa**.url=xxx
...

2.git submodule sync
3.git submodule update --init
4.修改.gitmodules中的url

常用命令
1.删除git远程仓库文件及文件夹
git rm -r --cached Photo\ albums 删除Photo albums文件夹(这里的文件夹名有空格命令行需要用"\ "来拼接)
git commit -m ‘删除了Photo albums文件夹t’ 提交,添加操作说明
git push -u origin master 将本次更改更新到GitHub项目上去.
2.删除git仓库最近一次提交 (该操作,多人共同维护一个git仓库时,比较有风险,慎用)

git reset --hard HEAD~1   

(1回退到上一个版本,2回退到上两个版本,其他以此类推)

git push --force

3.git将一个分支完全覆盖另外一个分支(比如 dev 分支完全覆盖 master 分支)

a) 切换到 master 分支
b) git reset --hard origin/dev
c) git push -f

4.git status时可能会显示大量Untracked files,可使用如下命令

git status -uno

5.当同时修改两个问题,一个问题没处理完,但又要修改另外一个问题时,可以先暂存本地修改,之后再还原本地修改

git stash   //暂存本地修改
git stash pop	//还原本地修改
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值