git操作相关

问题:子模块

git submodule init

git submodule update



问题:(ubuntu从18升级到20后)

unable to negotiate with *.*.*.*: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

解决方法:

export GIT_SSH_COMMAND='ssh -o KexAlgorithms=+diffie-hellman-group1-sha1' 


还有一种方法就是,打开.bashrc文件,在终端输入:$ vim ~/.bashrc ,然后向.bashrc文件写入:保存并关闭,执行source ~/.bashrc。

这样就不需要每次打开终端时都重新输入export GIT_SSH_COMMAND了。

export GIT_SSH_COMMAND='ssh -o KexAlgorithms=+diffie-hellman-group1-sha1'

还有一种方法就是在/etc/ssh/ssh_config文件的最后一行加入:

KexAlgorithms +diffie-hellman-group1-sha1

还有一种方法:

/.ssh/ 目录下新建一个 config 文件,无扩展名。然后使用写字板等工具打开,输入并保存以下内容:

Host *

KexAlgorithms +diffie-hellman-group1-sha1


问题:在Ubuntu下使用$ git clone时出现server certificate verification failed. CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile: none

解决方法:在执行$ git clone 之前,在终端输入:

exportGIT_SSL_NO_VERIFY=1


问题:有时将GitHub中的项目clone到Windows时,执行"git status"时,有时会提示有些文件被改动,其实这些文件并未做任何改动,执行"git checkout -- ."也不起作用,导致当再次pull项目时,提示"error: Your local changes to the following files would be overwritten by merge",无法正常执行pull操作。

解决方法,假如当前的分支是master,依次执行如下两个命令,当执行完如下两条命令后,再次执行"git pull"就会提示"Already up-to-date.":

git fetch origin master

git reset --hard FETCH_HEAD


问题:将文件夹从主分支复制到另一个分支

git checkout 来源分支 -- 文件路径

例如我想 将master分支上的utils文件夹复制到 work分支

git checkout master -- utils


复制master上的utils文件夹到work分支

#切换到work分支

$ git checkout work

Switched to branch 'work'

#将master上的utils文件夹复制到work分支

$ git checkout master -- utils

#保存修改

$ git add utils

#提交修改

$ git commit -m "Adding 'utils' directory from 'master' branch."

[work 9fcd968] Adding 'utils' directory from 'master' branch.

1 file changed, 0 insertions(+), 0 deletions(-)

create mode 100644 utils/file


删除master上utils文件夹(可选)

#切换到master分支

$ git checkout master

Switched to branch 'master'

#递归删除utils目录

$ git rm -r utils

rm 'utils/file'

#提交

$ git commit -m "Removing 'utils' directory."

[master c786f95] Removing 'utils' directory.

1 file changed, 0 insertions(+), 0 deletions(-)

delete mode 100644 utils/file




问题:git push review报错

解决办法:

git config remote.review.pushurl ssh://$YourName@.....git

git config remote.review.push    refs/heads/*:refs/for/*



操作 git

查看当前本地分支 git branch

查看所有分支 git branch -a

查看远程origin分支 git branch -r

创建新的分支 git branch master2

切换到新分支 git checkout master2

对比两个分支的区别 git diff master…master2

将master2分支合并到当前分支 git merge master2

重命名 git branch -m bugfix bugfix-1

删除 git branch -d bugfix-1


场景:

假设远程有一个dev分支,你如何切换到dev分支 开发代码 并提交到git

这个dev分支不是你创建的,是别人创建的,然后提交到gitlab上的, 然后你要在这个dev分支上开发

1. 获取远程仓库的所有信息

git fetch

2.  查看所有分支信息

git branch -r    /    git branch -a

3.  切换到需要开发的分支dev上

git checkout dev

4. 进行开发

5. 将所作操作全部添加至本地git暂存区

git add .

6.  提交修改

git commit -m 'commit信息'

7. push

git push -u origin dev

这样就将远程的分支拿到本地进行开发并提交至gitlab


参考链接:

(70条消息) Git使用常见问题解决方法汇总_fengbingchun的博客-CSDN博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容