一、记录在学习git的时候，从本地仓库推送到远程的时候，出现了上图提示，刚开始没细看，以为是账号密码错误，输了好多次还是这样，我才定睛一看，原来是在2021年8月13日移除了密码认证，请登录该网址查看详细内容。在网上找了找，大概就是需要加一个个人的token，而且设置期限。二、解决1、登录github，找到个人设置：翻到最下面，找到开发者设置：进入后，选择个人token，然后生成一个新的token：验证密码后，进入这个页面，填好需要填的：然后就会生成一个token：复制好，建议保存，然后git的时候，提示输入用户名和密码，用户名还是你的用户名，密码填这个，然后就发现推送成功了。如果提示：远程仓库包含您本地尚不存在的提交。第一种方法：强制推送强制上传输入命令： git push -u origin +master第二种方法：先同步远程到本地，然后再推送：git fetch origin https://github.com/threeshui/SomePoc.git git merge origin/master //获取远程更新 git push origin master //把更新的内容合并到本地分支
==本篇文章是关于git的学习记录。==一、什么是gitGit（读音为/gɪt/）是一个开源的分布式版本控制系统，可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。民间也有流传 , 是Linus Torvalds , 看不惯当时的一些版本控制系统收费的现状 , 自己在小黑屋里写了两周搞出来的产物Git 与常用的版本控制工具 CVS, Subversion 等不同，它采用了分布式版本库的方式，不必服务器端软件支持二、为什么要有git在git出现之前 , 在一些企业中使用到的版本控制软件大都是 svn , 自从git出现以后 , 就取代了svn的位置 , 下面是关于两者的区别Git 不仅仅是个版本控制系统，它也是个内容管理系统(CMS)，工作管理系统等。如果你是一个具有使用 SVN 背景的人，你需要做一定的思想转换，来适应 Git 提供的一些概念和特征。Git 与 SVN 区别点： - **1、Git 是分布式的，SVN 不是**：这是 Git 和其它非分布式的版本控制系统，例如 SVN，CVS 等，最核心的区别。 - **2、Git 把内容按元数据方式存储，而 SVN 是按文件：**所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。 - **3、Git 分支和 SVN 的分支不同：**分支在 SVN 中一点都不特别，其实它就是版本库中的另外一个目录。 - **4、Git 没有一个全局的版本号，而 SVN 有：**目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。 - **5、Git 的内容完整性要优于 SVN：**Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性，确保在遇到磁盘故障和网络问题时降低对版本库的破坏。三、git的安装git的下载地址：https://git-scm.com/downloads下载好后，双击打开，下一步，下一步，安装即可，当在任意目录右键有git的方式，即为安装成功。四、基础命令官方教程：http://git-scm.com/docs1、注册账号使用git之前 , 需要先初始化一个账号 , 可以使用下面的命令初始化：git config --global user.name "Your Name" git config --global user.email "email@example.com"2、初始化仓库# 初始化工作区域 git init # 添加文件 git add "文件名" # 添加当前目录下的所有文件 git add . # 查看工作区域状态 git status3、github创建远程仓库上面的初始化仓库命令 , 只是在本地创建好仓库 , 接下来在使用github创建一个远程仓库 , 当然前提你要有一个github账号 , 这个申请注册非常的简单。登录github账号，点击New repository：填好相关信息：然后就创建好了：这里会给一些提示命令：echo "# test" >> README.md git init git add README.md # 添加到暂存区 git commit -m "first commit" # 提交 git branch -M main git remote add origin https://github.com/1derian/test.git git push -u origin main # 本地已经有了一个仓库 git remote add origin https://github.com/1derian/test.git git branch -M main git push -u origin main # 代码 # 初始化工作区域 git init # 添加当前目录下的所有文件 git add . git commit -m "first commit" git branch -M main git remote add origin https://github.com/1derian/thinkphp5-rce.git git push -u origin main4、本地仓库推到远程这里我们在本地新建了个文件夹，里面放了一个文件：输入命令，提交：命令：git push -u orgin main结果：如果遇到超时错误，可以设置一个代理：git config --global http.proxy ip:portgit config --global https.proxy ip:port5、再次推送当你的项目中又添加了东西，创建了新的文件，那可以这样做：git add .git commit -m "second commit"git push -u origin main6、补充.gitignore 文件中可以设置忽略提交的文件/文件夹 , 该操作一定是在第一次git add . 之前比如我的工作目录下有一个config.txt , 不想推送到远程仓库中 , 你可以这样做当然也支持通配符：target //忽略这个target目录angular.json //忽略这个angular.json文件log/* //忽略log下的所有文件css/*.css //忽略css目录下的.css文件五、总结这些仅仅是git的九牛一毛 , 但是也够新手操作的了 , 关于git更多的玩法 , 你会在真实的项目中 , 以及解决的报错中慢慢的学习到git的强大