一直以来对github以及git的使用都是一知半解的,今天下定决心对所有相关知识进行一次整理规范。

本文复刻

还不会使用 GitHub ? GitHub 教程来了!万字图文详解 - 吴师兄学算法的文章 - 知乎 https://zhuanlan.zhihu.com/p/369486197

命令

git status

查看仓库状态

image-20220518153800843

git init

将当前文件目录初始化为仓库,创建相关的.git文件

image-20220518155401851

git add

将文件添加到仓库,文件夹中的内容默认不被追踪,需要手动add才被仓库承认,需要注意的是,add是将文件添加到暂存区中,尚未真正地上传文件

image-20220518155529924

warning: LF will be replaced by CRLF in README.md

The file will have its original line endings in your working directory

LF和CRLF其实都是换行符,但是不同的是,LF是linux和Unix系统的换行符,CRLF是window 系统的换行符。这就给跨平台的协作的项目带来了问题,保存文件到底是使用哪个标准呢? git为了解决这个问题,提供了一个”换行符自动转换“的功能,并且这个功能是默认处于”自动模式“即开启状态的。
这个换行符自动转换会把自动把你代码里 与你当前操作系统不相同的换行的方式 转换成当前系统的换行方式(即LF和CRLF 之间的转换),这样一来,当你提交代码的时候,即使你没有修改过某个文件,也被git认为你修改过了,从而提示"LF will be replaced by CRLF in *****"
————————————————
版权声明:本文为CSDN博主「man_zuo」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/man_zuo/article/details/88651416

git commit

将add的内容提交到git仓库

常用后缀 :

​ -m “这次提交的注释”

git log

显示提交日志

image-20220518160203509

git branch

查看仓库分支情况

git branch a 添加一个名为a的分支

image-20220518160429331

git branch -d x

删除名为x的分支

git branch -D x

强制删除名为x的分支

git checkout x

切换到分支x

git checkout -x x 创建新分支x同时切换

git merge x

以当前所在分支为主分支,合并x分支

git tag

查看当前分支的标签

git tag xxx

为当前分支添加标签xxx

可以通过checkout xxx的方式切换分支,相当于分支的别名

git help xxx

获取有关xxx的语法,xxx可以是branch commit等关键词

push

将本地代码更新到远程仓库(本地高版本)

git push origin master

pull

git push origin master

将远程仓库代码更新到本地仓库(远程高版本)

SSH绑定Git和Github

生成ssh

输入ssh-keygen -t rsa命令,表示我们指定 RSA 算法生成密钥,然后敲三次回车键,期间不需要输入密码,之后就就会生成两个文件,分别为id_rsa和id_rsa.pub,即密钥id_rsa和公钥id_rsa.pub. 对于这两个文件,其都为隐藏文件,默认生成在以下目录:

Linux 系统:~/.ssh

Mac 系统:~/.ssh

Windows 系统:C:\Documents and Settings\username\.ssh

Windows 10 ThinkPad:C:\Users\think.ssh

添加SSH

github主页 setting SSH and GPG keys

点击new ssh key

将id-rsa.pub粘贴到key并点击add new key

测试

使用ssh -T git@github.com 命令测试添加成功与否

实践

本地创建新的文件

echo "# test" >> README.md //创建一个内容为#test的自述文件

git init //初始化仓库

git add README.md //将自述文件添加到暂存区

git commit -m "first commit" //提交文件,描述为first commit

git branch -M main
//将当前的master分支更名为main,似乎与政确不让用master有关,总之不执行这步也行

git remote add origin https://github.com/shedding-ash/test.git
//将远程仓库的内容远程关联到本地仓库

git push -u origin main //提交本地内容,带上-u 参数其实就相当于记录了push到远端分支的默认值,这样当下次我们还想要继续push的这个远端分支的时候推送命令就可以简写成git push即可,不用带上网址

本地已有文件

git remote add origin https://github.com/shedding-ash/test.git
git branch -M main
git push -u origin main

各种问题

git 报错does not have a commit checked out

文件夹内错误地包含了.git文件,删除重试即可

git 报错fatal: unable to access url

push -u的默认值错误,考虑直接使用push url的方式上传