git学习及问题解决记录

本文详细介绍了如何使用Git进行版本管理,包括创建和初始化本地仓库、添加文件、提交更改、连接远程库、克隆与推送。在多人协作中,讨论了处理冲突和解决`refusingtomergeunrelatedhistories`错误的方法,以及拉取和推送远程分支的操作。此外,还涉及了SSHKey的创建和使用,以及如何在GitHub和Gitee之间进行同步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己学习中的经验记录(各处搬来的),不能保证完全正确或有用,如有问题欢迎交流指正~
主要参考:廖雪峰的Git教程


应用学习

用git进行版本管理,主要有以下几种情况:

  1. 已有本地项目,先创建本地库,再同步到远程库。
  2. 已有远程库,先克隆到本地,再建立远程连接。
  3. 已有远程库,先与本地建立连接,再同步。

已有本地项目

可以是有具体内容的项目,也可以是新创建的空目录

创建本地版本库

1、cd到项目目录下;
2、通过git init命令把这个目录变成Git可以管理的仓库:

$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/

因为之前瞎弄已经创建了本地库,我的显示:

$ git init
Reinitialized existing Git repository in D:/Projects/KGQA_HLM/.git/

该路径文档中已经存在了.git 文件,可以在当前文件下的终端中输入ls -a 查看现有的文件.有.git 的话就用
rm -rf .git 删除以后在重新初始化就可以解决了。

添加文件到版本库

使用 git add . 添加全部文件

$ git add .
warning: LF will be replaced by CRLF in .idea/inspectionProfiles/profiles_settings.xml.
The file will have its original line endings in your working directory

问题解析及解决:关于 LF will be replaced by CRLF 问题出现的原因以及解决方式

提交更改到仓库

使用 git commit -m ‘自己的提交说明’ 命令提交改动

$ git commit -m "wrote a readme file"
[master (root-commit) eaadf4e] wrote a readme file
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

添加远程库

现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,真是一举多得。

连接远程库:

(参考廖雪峰Git教程–远程仓库
第1步:注册GitHub或者gitee账号。
第2步:本地创建SHH key。
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第3步:登陆GitHub或Gitee,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
在这里插入图片描述点“确定”,就应该可以看到已经添加的Key。
ps:为什么GitHub需要SSH Key呢?因为GitHub/gitee需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub/gitee只要知道了你的公钥,就可以确认只有你自己才能推送。

创建远程库

因为我是已经有了远程库,这里暂不记录创建过程,可参考
廖雪峰Git教程–添加远程库

克隆远程库,建立连接

git bash路径切换到准备存放本地库的路径下;
把远程库直接克隆下来:

$ git clone git@github.com:michaelliao/learngit.git
Cloning into 'learngit.git'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值