git操作与远程github配置

1、简介

初学git,以此记录在git学习过程中的笔记,以方便后续查阅。
git :一款开源分布式版本控制系统。git可以非常方便的进行版本控制,可以自如回退版本,方便日常编程,github,目前我是将其作为云端备份来用的,其功能远不止如此,后续再写。

2、准备阶段

git菜鸟教程包含git安装地址
1、电脑安装git客户端,注册github账号(若是不打算云端备份,可以不注册)
2、git 安装完后需要进行一写配置:

$ git config --global user.name "runoob"         #自定义名称
$ git config --global user.email test@runoob.com #自定义邮箱,建议与github保持一致

3、Git bash使用Linux命令,因此需要熟悉一些常用文件操作命令:rm -rf,mv,cat ,cd …/,等
4、必要的一些概念:工作区 指在本地电脑中能看到的目录;暂存区 指放在.git目录下的index索引文件;版本库 就是.git文件夹,git init时会生成。工作区有任何改动都可以查询git status获知,改动后通过添加上传两步将其提交到版本库。后续可以通过版本号,快速的恢复被更改的文件。

3、本地仓库配置

1、创建git仓库

在需要git的本地目录下右键鼠标,选择git Bash Here
git操作与远程github配置_第1张图片
之后在命令行输入:

git init

该命令执行成功后会在当前目录生成.git文件夹

2、添加文件到本地仓库

添加测试文件到git缓存区,此命令也适用于文件夹

git add

在这里插入图片描述

查看文件是否被更改

git status

git操作与远程github配置_第2张图片
在这里我改了一行文件内容
可以用git diff命令查看不同

提交到版本库

git commit -m '自定义版本备注'

或者直接用 git commit -am ‘name’

提交修改到最近一次版本

git commit --amend

3、提交记录与版本回退

查看提交记录详细日志,按q退出

git log

查看简洁信息及版本名称(常用)

git log --oneline

git操作与远程github配置_第3张图片
左边黄色字符串就是版本号,右边是自己定义的备注,蓝色箭头指向当前工作区使用的版本节点,回退时需要版本号。

回退命令:

$ git reset HEAD^            # 回退所有内容到上一个版本  
$ git reset HEAD^ test.txt   # 回退 test.txt文件的版本到上一个版本  
$ git  reset  052e           # 回退到指定版本

HEAD^ 后面可以跟数字,为2时回退到上上版本,依次类推

4、git分支创建与操作

git 分支操作类似于创建了一个目录副本,新创建的分支会包含原有的master目录结构。每当切换分支时,本地目录也会同时切换,比如在新分支下新建一个文件test.txt并添加到git,那么切换分支后test.txt将消失。在新分支内新建或删除文件一定要加上git,否则会直接更改目录结构。

分支查询:

git branch

分支创建语句:

创建分支时一定要查看暂存区是否有提交:git status

git branch branchname

或者

 git checkout -b branchname

branchname是自定义分支名

分支合并:

合并前需要先提交分支内容
然后要切换回主支:git checkout 主支,然后使用下面指令合并

git merge branchname

分支合并会将被合并分支新建或删除的文件及更改更新到主支
合并完成后可以使用git log --graph查看分支图谱

分支删除:

git branch -d branchname

分支冲突:

当在两个分支中对同一个文件做不同修改并提交时,在合并分支后会出现分支冲突,打开文件可以看到冲突内容
此时需要手动修改,然后git add

文件恢复:

如果发现分支误删除了某一文件,可以使用

git checkout fileName

恢复文件

4、Github远程仓库配置

github官网注册
github与本地仓库之间传输数据使用SSH加密通信,需要配置验证信息,即公钥和私钥。

1、使用以下命令生成私钥和公钥:

ssh-keygen -t rsa -C "[email protected]"  #引号内为github上注册的邮箱

如果不考虑生成多个密钥的情况下,可以一路回车下去,会有生成出的一个符号画面
通常自用只需要生成一次钥匙就够了,默认新生成的密钥会覆盖旧的,有保存多个密钥的方法,csdn上有许多。生成的密钥一般都放在:C:\Users\xxx.ssh
.pub即公钥,用命令行cat查看,或者文本编辑器打开,将其内容复制到github的key一栏。
git操作与远程github配置_第4张图片

2、在github上找到setting

git操作与远程github配置_第5张图片git操作与远程github配置_第6张图片
选择SSH那一栏
将复制的公钥内容粘贴到key
git操作与远程github配置_第7张图片
成功后会有
git操作与远程github配置_第8张图片

3、接下来,将本地关联到github

在github新建仓库(自用),选择私有,不指定许可权限即不开源,自述文件可以考虑是否添加,添加的话,需要先将远程仓库克隆到本地再添加本地文件上传。

在本地使用命令: git remote add origin 将本地git与远程仓库关联

git remote add origin  git@github.com:virsing/Leetcode.git

git操作与远程github配置_第9张图片
这是远程仓库的SSH链接

然后将本地仓库提交到远程仓库,默认远程仓库由master改为main

git push -u origin main  #远程仓库为空时
git push origin main     #后续提交时去掉-u,之后也不需要了

5、常见错误

1、error: src refspec xxx does not match any / error: failed to push some refs to …
现在的github工程默认为main,而git本地默认为master
解决方法:
统一远程和本地仓库名

 git branch -m oldBranchName newBranchName

在这里插入图片描述
2、Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

fatal:无法访问远程仓库
请确认有正确的权限和远程仓库存在

可能原因:
1、SSH密钥没有配置,或配置错误,查看命令记录或再配置一遍,可能是邮箱错误
2、未关联远程仓库或关联错误,
git remote remove origin #删除关联
git remote add origin [email protected]:XXX/XXX.github.io.git #添加关联
git push origin master #上传
3、main和master问题,转上问题1
4、本地未提交README自述文件,github上添加了自述文件,本地没有添加

解决方法:
touch,add, commit添加文件,然后在push
或者将远程clone到本地再push

还有一种错误我忘了,好像是提示密钥问题,但是配置密钥会显示已有密钥连接
解决方法是在C:\Users.ssh下新建一个config文件,在文件中写入配置信息如下
Host github.com
User [email protected]
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
git操作与远程github配置_第10张图片

你可能感兴趣的:(git,github,学习)