简介:
什么是git?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
什么契机下,产生的版本控制系统:
如果几个同事一起合作编辑一个文件,如果全靠人工的话,就需要保留每个时期,每个人的版本,以便之后查看,修改。还得整理出包含每个改动的最终版,
这个最终版只要有人改动,就得找到那个改动的地方,然后更新。总之,整个过程是非常耗费时间和人力的。
由此需要,产生了版本管理系统,它可以自动帮我们记录每次文件的改动,还可以让同事协作编辑,也不用自己管理一堆类似的文件,也不需要把文件传来传去。
知道了版本控制系统,那什么是分布式呢?
与分布式对应的是集中式。集中式就是将整个文件统一放在特定服务器上,工作的时候先要从这个服务器上获取到最新版本,然后再进行自己的编辑修改,完了再提交到此服务器上。所以如果没有网络,就没法工作了。
分布式是每个人电脑上都有完整版本,没有网络也可以工作,可以同事之间交换修改部分,也可以统一设立中央服务器,然后得到每个人修改的记录。
先简单这样有个概念,之后再自己实验。
Git是一款免费、开源的分布式版本控制系统。
Github是用Git做版本控制的代码托管平台。也就表示这样的代码托管平台可以有很多个,git和github不是一一对应关系。比如,听说过的还有“码云”,等等。
Git是分布式版本控制系统,就是将同一个Git仓库,分布到不同的电脑上。这样工作时就必须找一台电脑充当服务器仓库的角色,每天24小时开机,其他每个人都从这个服务器仓库中拉取别人的提交,并且各自把各自的提交推送到这个服务器仓库里。但这是很不方便的,如果有个远程的免费的仓库可以使用才是最好的。
GitHub就是提供Git仓库托管服务的,只要注册一个GitHub账号,就可以免费获得Git远程仓库。也就是有了这个远程仓库之后,一起合作的小伙伴拉取或是提交都是面对这个远程仓库就可以了。
一、下载Git
下载Git 官方地址为:https://git-scm.com/download/win
二、安装Git
双击软件安装
选择安装目录
选择组件
开始菜单目录名设置
选择使用命令行环境
以下几步默认,直接点击下一步,安装完成
检验是否安装成功,回到电脑桌面,鼠标右击如果看到有两个git单词则安装成功,
当然也有可能安装成功了,右键中没有这两个选项,查看解决方法
三、使用命令管理代码
3.1 、Git安装之后需要进行一些基本信息设置
鼠标右击桌面,
点击 Git Bash Here
设置用户名 (自己去github官网上注册吧:https://github.com/ )
git config --global user.name '在github上注册的用户名'
也可以输入: clear 清空 内容,和LInux系统的操作是一样 的
设置用户邮箱
git config --global user.email '注册时候的邮箱' // 注意:该配置会在github主页上显示谁提交了该文件
配置ok之后,我们用如下命令来看看是否配置成功
git config --list
注意:git config --global 参数,有了这个参数表示你这台机器上所有的git仓库都会使用这个配置,
2、简单操作复习
1. 进入某个目录
进入D盘,然后进入D盘的名为 D:\学习资料\博士阶段 的文件夹:
cd D:
cd 学习资料
cd 博士阶段
cd github
或者
cd D:/学习资料/博士阶段
2. 创建文件夹
mkdir a // 创建 名字 为 a 的文件夹
3. 命令调用符号:
键盘中的 向上箭头
4. 复制,粘贴
复制文字:Ctrl + C
粘贴git bash :命令行右击, 选择,Shift + Insert
3、创建文件夹 (Linux 下的命令相同)
在 D:/学习资料/博士阶段 新建 github 文件夹
cd D:/学习资料/博士阶段
mkdir github
4、在文件内初始化git(创建git仓库)
git init
5、向仓库中添加文件
用命令【git add】
告诉Git,把文件添加到仓库:
用命令【git commit】
告诉Git,把文件提交到仓库:
touch navigation.html //创建文件, 也可以是txt等其他文件,也可以手动打开修改内容 git add 'navigation.html' //将文件添加到暂存区 git commit -m '注释' //将暂存区的文件提交,并添加注释
注:git commit -m 之后双引号中是本次修改的描述,可以写你觉得可以描述本次行为的任何有意义的内容,以便之后查阅。
你可以多次执行git add命令,之后再使用git commit一次进行提交。
当你用 git add
命令后,相当于将一次修改放入暂存区,准备提交,所以可以将多次修改放入缓存区之后,一次提交。
6、修改仓库文件
vi 'navigation.html' //打开需要编辑的文件 注意:输入字母a进入编辑模式,编辑后,点击ESC,然后输入:wq保存退出。(和Linux中的编辑器命令差不多)
然后在中间写内容,最后提交
当我们修改了 'navigation.html'文件之后,再执行【git status】
命令,可以得到如下结果:
它会告诉你仓库当前的状况:navigation.html 被修改了,但是还没有放入缓存,也还没提交。
用【git diff】
这个命令,可以查看我们具体做了什么修改;
接着执行git add,再执行 git status, 它会告诉我们当前仓库的状况是:将要被提交的文件是test.txt。
然后执行git commit -m "第二次修改",再执行 git status, 它告诉我们当前仓库的状况是:没有需要提交的内容。
使用【git log】命令查看所有历史记录:(这一部分是别人的内容)
我用蓝色圈出来的部分就是我们每次提交时候写在 -m 之后的描述,可以简单清晰了解每次大概改动的地方。
7、撤销修改 (借鉴别人的内容)
不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt
中添加了一行:My stupid boss still prefers SVN.
//用 cat navigation.html 看文件中的内容
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.
在你准备提交前,一杯咖啡起了作用,你猛然发现了stupid boss
可能会让你丢掉这个月的奖金!
既然错误发现得很及时,就可以很容易地纠正它。你可以删掉最后一行,手动把文件恢复到上一个版本的状态。如果用 git status
查看一下:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
你可以发现,Git会告诉你,git checkout -- file
可以丢弃工作区的修改:
$ git checkout -- readme.txt
命令
git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:一种是
readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是
readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。总之,就是让这个文件回到最近一次
git commit
或git add
时的状态。现在,看看
readme.txt
的文件内容:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
文件内容果然复原了。
git checkout -- file
命令中的 --
很重要,没有--
,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout
命令。
现在假定是凌晨3点,你不但写了一些胡话,还 git add
到暂存区了:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
My stupid boss still prefers SVN.
$ git add readme.txt
庆幸的是,在commit
之前,你发现了这个问题。用 git status
查看一下,修改只是添加到了暂存区,还没有提交:
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: readme.txt
Git同样告诉我们,用命令git reset HEAD <file>
可以把暂存区的修改撤销掉(unstage),重新放回工作区:
$ git reset HEAD readme.txt
Unstaged changes after reset:
M readme.txt
git reset
命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD
时,表示最新的版本。
再用 git status
查看一下,现在暂存区是干净的,工作区有修改:
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: readme.txt
还记得如何丢弃工作区的修改吗?
8、删除仓库文件 使用git删除:$ git rm '文件名',然后提交操作
git rm 'navigation.html' // 删除文件
git commit -m '注释' // '删除 navigation.html 文件'
总结一下:(如果想要了解其他命令,可以仔细阅读廖学峰老师的教程)
git init 将当前目录变成git仓库
git add 将修改文件放入缓存区
git commit -m "描述文字" 将缓存区中文件提交
git status 查看当前仓库的情况
git diff 查看具体修改内容
git log 查看历史记录
参考:
https://www.cnblogs.com/qtiger/p/13901581.html
https://blog.csdn.net/qq_40428678/article/details/84074207
1、猴子都能懂的GIt: https://backlog.com/git-tutorial/cn/
3、https://www.cnblogs.com/zhaoyingzhen/p/8950080.html
4、https://www.liaoxuefeng.com/wiki/896043488029600/897271968352576 廖学峰老师的教程
5、Linux-git使用 https://blog.csdn.net/weixin_42825585/article/details/88781905