Git学习记录及常见问题

常用操作

1、Git查看远程仓库路径

git remote -v

2、添加本地仓库到远程仓库

git remote add origin root@192.168.1.101:/path

3、修改SSH端口

git remote set-url origin ssh://root@192.168.1.101:26126/path

4、git子模块

添加子模块

git submodule add <submodule_url>

初始化本地.gitmodules文件

git submodule init

同步远端submodule源码

git submodule update

获取主项目和所有子项目源码

git clone --recurse-submodules <main_project_url>  

拉取所有子模块

git submodule foreach git pull

5、更改git子模块的远程存储库

编辑.gitModule文件,然后重新生成并更新:
通过git命令或直接编辑文件:

git config --file=.gitmodules -e

或者只是:

vim .gitmodules

然后重新同步并更新:

git submodule sync
git submodule update --init --recursive --remote

6、git关于文件权限修改引起的冲突及忽略文件权限的办法
git中可以加入忽略文件权限的配置,具体如下:

git config core.filemode false

这样就设置了忽略文件权限。查看下配置:

$ cat .git/config

7、Git中查看单个提交的更改文件列表

git show --stat 1268afe676e
git log --stat

git log --stat COMMIT

8、Git 本地创建分支并提交远程分支

在本地git checkout -b xxx 创建分支之后
想要提交分支到远程, 直接git push是不行的, 除非原来的分支里面就有这个分支.
需要先使用:git push origin xxx:xxx
例如:

git push origin test :test

9、git删除分支

先切换到别的分支: git checkout xxx
删除本地分支: git branch -d yyyy
如果删除不了可以强制删除,git branch -D

10、git提取出两个版本之间的差异文件并打包

git diff 608e120 4abe32e --name-only | xargs zip update.zip

错误记录

1、错误 RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received

error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
VLC sources: git clone failed

解决方法:

git config --global http.sslVerify false
git config --global http.postBuffer 1048576000

2、无法push到远程仓库

To 192.168.3.6:/mnt/xxxx
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'root@192.168.1.101:/mnt/xxxx'

解决方法
config添加

[receive]
        denyCurrentBranch = ignore

3、refusing to update checked out branch: refs/heads/master
这是由于git默认拒绝了push操作,需要进行设置,修改.git/config文件后面添加如下代码

[receive]
denyCurrentBranch = ignore

4、git clone error port 443: Timed out
git clone 一些谷歌资源的时候,出现类似的错误:

fatal: unable to access 'https://aomedia.googlesource.com/aom/': Failed to connect to aomedia.googlesource.com port 443: Timed out

尽管此时,我们的电脑已经可以翻墙了,将https://aomedia.googlesource.com/aom/ 复制到浏览器时可以访问,git clone却不行,原因在于git 也需要配置代理:

git config --global http.proxy http://127.0.0.1:8889
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值