一、一些版本控制系统
我们知道 git 是版本控制工具,下面先对版本控制工具进行简要介绍:
-
版本控制工具的分类:
-
集中式版本控制系统:CVS、SVN、ClearCase
-
分布式版本控制工具:git
-
-
所有的版本控制系统,只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等;而不能更改二进制文件(图片、声音)
-
强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。
二、git简介
- git是分布式版本管理系统,每个人的电脑上都有一个完整的版本库,只需要向各自推送修改了的内容;(通常会使用一台主机来辅助交换修改)
- git使用c开发
- git的版本库(仓库,repository):可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
三、git的使用
1、基本原理
(这里可以先不看,直接到跟着下面的详细步骤操作一遍之后回来再看)
![Alt](https://gitee.com/hotpotliuyu/articles-picgo/raw/master/images/20210720210208.png#pic_center)
2、git提交的基本流程:
![Alt](https://gitee.com/hotpotliuyu/articles-picgo/raw/master/images/20210720205823.png#pic_center)
3、git提交的详细步骤
(以下操作的前提是你已经在电脑上装好了git,这是git的下载地址:https://git-scm.com/downloads)
-
在你喜欢的地方新建一个文件夹,并在新文件夹点击鼠标右键,然后点击Git Bash Here;紧接着你会进入一个命令行工具中;
-
在命令行窗口中输入
git init
命令,此时文件夹内会多一个.git的隐藏文件夹,如果你的没有显示这个文件夹,可能是因为没有勾选文件系统中查看下的隐藏的项目(这里有显示隐藏项目的方法);这个隐藏文件里的内容是git的一些配置文件。
-
在当前文件夹下随便新建一个文件,如下图;
-
使用
git add + 文件名/目录名
命令,可以将你需要同步的文件,添加到本地的暂存区。
然后如果你想的话,可以输入
git status
,可以检测当前目录和暂存区的状态,查看哪些修改被暂存了;
-
使用
git config
命令进行配置:在提交之前,你必须先设置你的名字和 email,这是你在提交 commit 时的签名,每次提交记录里都会包含这些信息。
git config --global user.name "YourName" git config --global user.email "YourEmail@xxx.com"
-
完成配置后,我们可以创建提交了
请输入:git commit -m "my first commit"
通过这个命令,你创建了一条注释为 “my first commit” 的 Git 提交。
输入命令回车后会显示你的提交里有哪些文件:
如果你需要查看你的提交,可以通过下面的命令查看:
-
git log
- 查看之前每次的commit记录列表,输入q
退出git log
; -
git show
- 查看最近一次已commit的文件修改信息; -
如果需要查看指定的某次commit的文件修改信息,git log获取那次的commit id,然后
git show commitid
即可查看指定的文件修改详情;
-
-
连接GitHub远程仓库
将提交推送到远程仓库之前,你需要先和远程仓库建立连接,使用如下命令,将本地仓库连接到 GitHub 或者Gitee 仓库中:
git remote add 链接别名 仓库链接
链接别名是你随便取的别名,默认是origin,输入的时候不需要是字符串;仓库链接就是你仓库的URL,GitHub如下图可以看到你的仓库路径,Gitee中也是一样的:
得到仓库连接后就可以在命令行中输入命令了:
如果你想要查看你有哪些仓库连接,你可以使用以下命令:git remote -v #命令可以查看本地仓库所关联的远程仓库信息
-
最后可以向远程仓库推送你建立的提交了
推送到远端仓库中具体命令如下:git push 自定义小名 master
执行后,GitHub 服务器 需要验证你的身份,按提示输入你的用户名和密码即可完成 push 同步。
完成push后命令行里有提示
如果遇到以下问题:
-
git push 后报错:
unable to access 'https://github.com/Dada-liu/shouji/': OpenSSL SSL_read: Connection was reset, errno 10054
解决办法:输入命令
git config --global http.sslVerify "false"
参考链接:https://blog.csdn.net/qq_40999917/article/details/116213557
-
git push 后报错:
! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/Dada-liu/shouji.git' hint: Updates were rejected because the remote contains work that you do hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
解决办法:输入命令
git pull --rebase 仓库连接别名 master
原因:本地版本和远程版本无法对应,所以git push
失败;
参考链接:git:到底什么是 fast-forwards ?
然后你可以登陆你的GitHub或者Gitee查看一下,你提交的文件已经在你的仓库里了;
-
-
最后的最后,如果你需要拷贝一个仓库到本地,让自己能够查看该项目,或者进行修改。
在命令行里输入下面的命令:git clone [url]
[url] 就是你想复制的仓库链接;
然后你可以在你的文件夹中看到复制下来的仓库:
使用git推送修改和克隆仓库的逻辑
如图: