git的使用以及错误总结

参考廖雪峰的git教程https://www.liaoxuefeng.com/wiki/896043488029600
整体的具体使用只需要跟着这个教程进行就可以了,下面就是记录一些注意事项

开始使用git

关于git clone

最开始认识到github就是从git clone开始的,就是拷贝下别人的开源代码,需要注意的是,这个拷贝方法是有多种协议的,最常用的还是SSH和https,SSH协议相对来说传输速度更快,需要注意的是

  1. 使用SSH的时候需要生成本地公钥,然后向github或者gittee添加本地公钥才能完成clone,同样这个公钥的添加也是接下来push推送代码所必须的

  2. SSH的时候一般不加sudo,否则会出现类似错误在这里插入图片描述

  3. 关于前面说的如何生成公钥,和上传公钥,都可以从廖雪峰教程中找到

开始git管理自己项目

首先创建仓库,有两种方法

  1. 在github网页上创建一个仓库,之后把它给克隆下来,接下来就可以本地进行和项目的管理了
  2. 在本地创建一个项目文件夹,网页上也创建一个同名仓库,最后进入该目录中进行远程关联(前提是已经完成公钥的生成并上传)
git remote add origin git@github.com:michaelliao/learngit.git

合理运用分支

合理的运用分支可以让项目的开发思路更清晰

  1. 在项目中最好是以master分支为最终版本
  2. 添加新的功能或者修复BUG最好是新建一个分支,开发完成后进行和master分支合并,最好使用禁止快速向前合并的方法,这样可以记录合并历史
  3. 在每一次master分支更新新的版本的时候,要注意打上标签,这样方便今后的回顾

忽略特殊文件

一般情况下,我们git管理的项目是避免不了编译的,编译就会更改一些文件,这些中间文件是我们不希望上传的,还有等等一些希望忽略的文件也是不希望上传的,但是在git status时就会显示仍然有修改,这时候就需要 .gitignore文件
如何使用直接参考教程https://www.liaoxuefeng.com/wiki/896043488029600/900004590234208

github与gitee

这两个其实操作是差不多的

  1. 注意这两个的地址是不一样的,前者是github后者是gitee,克隆和关联的时候要注意
  2. 或许github的速度没有gitee速度快,毕竟后者是国内源
  3. github免费版是所有人都是可见的,相当于自己的代码 是完全开源的,私密就需要交钱了,gitee如果是个人或者五人及以下团队使用的话,可以免费创建私密仓库

使用过程中的细节总结

  • 当正在某一分支上进行工作,但是还没有完成时,这时候因为没有完成工作还不想commit,是不能切换分支的,如果硬要切换,必须先把当前工作保存压栈,git stash
  • 使用SSH协议进行clone时,不要使用sudo
  • 最好github和gitee远程库名称不要origin,否则在关联或者提交中会出现远程库同名的冲突,解决同名冲突,参考https://www.liaoxuefeng.com/wiki/896043488029600/1163625339727712

合并分支,解决冲突

  • 问题一:出现拒绝合并无关的历史的错误
    在合并指令后边加入忽略关键字
git merge --no-ff -m "merge with no-ff" dev --allow-unrelated-histories

这样可以强制合并,并且这样可以保存分支历史信息

  • 问题二:解决合并冲突
    一般情况下分支合并避免不了出现冲突的出现,手动修改效率底,使用工具
    先进行工具的安装
apt-get install kdiff3
git mergetool

弹出图像界面,直接在图形界面进行操作更高效,并且有一件修改的功能
最后

$ git add .
$ git commit -m "conflict fixed"

在命令行查看合并图形界面

git log --graph --pretty=oneline --abbrev-commit
  • 撤销合并

最好在合并前把本地仓库全部上传,如果执行这个回退,会丢失掉更改
方法一

git checkout 【行merge操作时所在的分支】
git reset --hard 【merge前的版本号】

方法二

git checkout 【行merge操作时所在的分支】
git merge --abort 

删除本地分支后再删除远程分支的方法

git push origin :branchname(一定要加:)

git clone 出现访问出错,显示无权限或找不到(链接不到)仓库

fatal: 无法读取远程仓库。

请确认您有正确的访问权限并且仓库存在。

密钥已经上传,但是还是会出现该错误
原因:很可能是对该代理进行了限制,特别是在gitlab上,会出现这种问题
公司是通过代理来上网的
这样的话,即便使用git都要通过代理,而git的ssl证书又没有经过第三方证书验证,因此代理不认可,直接失败.
这个时候就需要把git验证ssl证书的功能去掉

解决方法:

git config --global http.sslverify false

已经add 但是需要移除一些不想要的文件夹

  • git rm -r --cached的使用,-r是强制删除
    删除暂存区文件,但保留工作区的文件,并且将这次删除放入暂存区。直接commit就可以

https://blog.csdn.net/qq_42780289/article/details/98353792

git rm -r --cached .history/

git仓库中存在另一个仓库,push提示中断

错误:
You’ve added another git repository inside your current repository.

# cd 到你的第二个仓库目录中,一般也就是你报错的当前
rm -rf .git && git rm --cache . -f

使用子模块

更新子模块, --progress 显示下载进度
git submodule update --init --recursive --progress

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Git revert 可以帮助用户撤销以前的提交。它可以用来撤销某个提交或者一系列提交,可以指定某一特定的提交,也可以让 Git 自动确定要撤销的提交。可以使用 git revert <commit> 命令来撤销指定的提交,该命令会创建一个新的提交来撤销之前的提交。 你也可以使用 git revert --no-commit <commit> 命令来撤销指定的提交,该命令会直接在工作目录中撤销之前的提交,而不会创建一个新的提交。 ### 回答2: git revert是一个用于撤销指定版本提交的命令,它创建一个新的提交,恢复到被撤销提交之前的状态。下面是git revert的详细使用: 1. 首先,用git log命令查看提交历史,找到需要撤销的提交的commit id。 2. 在终端中,使用git revert命令后跟着要撤销的提交的commit id,例如git revert <commit id>。 3. Git会创建一个新的提交,将被撤销提交的更改撤销,这个新提交的提交信息会自动生成。 4. 可以使用git log命令查看新的提交,确认撤销的更改是否正确。 需要注意的是,git revert只会撤销指定提交的更改,而不会删除提交历史。撤销提交后,原来的提交将会变为一个新的提交,以保持版本控制的完整性。 如果需要撤销多个提交,可以串联使用git revert命令,按照提交的顺序一次撤销。 另外,git revert还支持使用参数--no-commit,这样在执行撤销操作后,不会自动创建一个新的提交,而是将撤销的更改放入工作区,可以在撤销完所有提交后,用一次git commit命令创建一个新的提交。 总结来说,git revert是一个用于撤销指定版本提交的命令,它可以保持提交历史的完整性,非常适合在多人协作的项目中使用。 ### 回答3: git revert命令用于撤销之前的提交,并生成一个新的提交来撤销变更。它不会改变历史记录,而是在历史记录中增加一个新的反向提交。 使用git revert的一般步骤如下: 1. 首先,使用git log命令查看当前分支的提交历史,找到要撤销的提交的哈希值。 2. 使用git revert命令来撤销指定的提交,格式为`git revert [commit]`,其中[commit]是要撤销的提交的哈希值。 3. 执行git revert命令后,Git会自动生成一个新的反向提交,并打开一个编辑器以供你编辑提交说明。你可以保留默认的提交说明,或者根据需要修改。 4. 保存提交说明后,关闭编辑器。Git会自动创建一个新的提交以撤销之前的提交。 需要注意的是,如果撤销了一个提交后,你可能需要检查代码是否仍然能够正常工作,并且需要将这个新的提交推送到远程仓库以同步更改。 此外,git revert还有一些常用的选项和用法,例如: - `--no-commit`:执行撤销操作时不自动创建新的提交,而是将更改应用到暂存区,可以在后续操作中进行自定义提交。 - `--no-edit`:执行撤销操作时不打开编辑器,直接使用默认的提交说明。 - `HEAD~n`:撤销最近的n个提交,其中n是一个数字。 - `commit1..commit2`:撤销从commit1到commit2之间的所有提交。 综上所述,git revert是一个可以用于撤销提交的强大命令,帮助我们维护代码的历史记录并纠正错误

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值