1.Git简介
Git是目前世界上最先进的分布式版本控制系统,在处理各种项目时都十分高效,而且非常的高大上。
除了git还有svn、cvs这样的版本控制系统,它们的区别在于一个是分布式一个是集中式
集中式就是svn和csv这样的版本控制系统,分布式是git
区别在于集中式的版本控制系统每次在写代码时都需要从服务器中拉取一份下来,并且如果服务器丢失了,那么所有的就都丢失了,你本机客户端仅保存当前的版本信息,换句话说,集中式就是把代码放在一个服务器上集中管理,你的所有回滚等操作都需要服务器的支持。
分布式的区别在于,每个人的电脑都是服务器,当你从主仓库拉取一份代码下来后,你的电脑就是服务器,无需担心主仓库被删或者找不到的情况,你可以自由在本地回滚,提交,当你想把自己的代码提交到主仓库时,只需要合并推送到主仓库就可以了,同时你可以把自己的代码新建一份仓库分享给其它人。
像集中式它们都有一个主版本号,所有的版本迭代都以这个版本号为主,而分布式因为每个客户端都是服务器,git没有固定的版本号,但是有一个由哈希算法算出的id,用来回滚用的,同时也有一个master仓库,这个仓库是一切分支仓库的主仓库,我们可以推送提交到master并合并到主仓库上,主仓库的版本号会迭代一次,我们客户端上的git版本号无论迭代多少次,都跟master无关,只有合并时,master才会迭代一次。
2.安装
打开Git官网下载安装程序,然后按照默认选项安装即可。
3.设置
安装完成后,需要进行设置,在命令行输入以下代码:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
查看一下用户名和密码:
$ git config user.name
$ git config user.email
4.初始化本地库
版本库(repository)也叫仓库,可以看做一个目录,这个目录里的所以文件都由Git进行管理,每个文件的修改、删除,Git都能跟踪。
1.选择一个合适的地方,创建一个空目录:
$ mkdir learngit //创建一个名叫learngit的空目录
$ cd learngit //把learngit设置为当前目录
$ pwd //查看当前目录
/c/Users/Administrator/learngit
如果使用Windows系统,要保证目录名不包含中文。
2.通过如下命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /Users/Administrator/learngit/.git/
另一种方法:
直接把git主界面关掉--进入选择的目录文件夹内--右键进入Git Bush Here
输入命令:$ git init
这样Git就把仓库建好啦,我们可以看到在当前目录下多了一个 .git 的目录,这个目录是Git来跟踪管理版本库的。
3.查看状态命令
$ git status
On branch master//提示当前库在master分支下
No commits yet//目前没有提交过任何东西
nothing to commit (create/copy files and use "git add" to track)
4.增加文件:$ vim hello.txt(文件名)
复制:ESC+yy 粘贴:ESC+p 保存::+wq
5.查看当前目录下的文件:$ ll 查看内容:$ cat hello.txt 查看文件末尾第一行:$ tail-n 1 hello.txt
5.添加暂存区
1.添加到暂存区命令:
$ git add hello.txt
2.删除文件:
$ git rm --cached hello.txt 只是删除了暂存区的文件,工作区还是存在的
3.提交本地库:
git commit -m "first commit(版本信息)" hello.txt
查看版本信息:git reflog或者git log
4.修改文件:
vim hello.txt进入文件修改----然后git add hello.txt 添加到暂存区----git commit -m “second commit” hello.txt提交到本地库
5.版本穿梭:
git reflog 查看版本号----git reset --hard 要选择的版本号
6.git分支操作
1.创建分支:git branch 分支名
查看当前分支:git branch -v
2.切换分支:git chechout 分支名
3.修改分支:
vim 分支名 ——修改——添加暂存区——提交本地库
4.合并分支:git merge 分支名
7.创建远程库
1.首先到github上注册一个你的账号
2.在本地创建一个ssh的key,因为github是使用ssh服务进行通讯的
ssh-keygen -t rsa -C "your_email@example.com"
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名,一般我们默认,让存储到默认路径以及默认文件名
它会要求输入Enter file in which to save the key (/home/stephenzhou/.ssh/id_rsa)
这里是生成的sshkey文件名,我们可以回车使用默认文件名
除此之外还会让你输入
Created directory '/home/stephenzhou/.ssh'.
Enter passphrase (empty for no passphrase):
这个密码会在让你push提交时候要输入的,除了git登录密码,还要输入这个密码,直接回车则空密码,这里我们直接回车
接着会让你在此输入密码,验证这里依旧回车
Enter same passphrase again:
生成的ssh文件如果不使用-f指定的话会生成在用户目录下的.ssh目录中,.ssh是隐藏文件,可以使用ls -ah看到,使用cd ~进入用户主目录,然后cd进入到.ssh目录中可以看到文件
id_rsa是私匙,id_rsa是公匙,id_rsa不能告诉任何人,只有公钥可以,ssh采用的是非对称加密。
接着在github上添加你的公钥,最后在输入你的登录密码就可以了
这样ssh就添加成功了~,
你可以添加如很多个ssh,比如你有多台电脑,在每个电脑上都配置ssh然后添加进来就可以了,git需要这个是要确定你是主人,确定是主人的机器推送的才可以推送到仓库中,但是你可以创建公开仓库,别人只能拉取不能推送到这个仓库中,你可以给其它人权限。
找到你要开放的仓库,选择Manage access然后使用invite a cikkaborator添加成员就可以了。
github上创建仓库
我们可以在github上创建一个仓库
创建时记得选上readme文件,因为这个文件是github上的md文件,用来显示项目简介的,建议选上,日后我会教大家如何去写md文件,或者可以去使用一些在线的md文件生成网站也可以。
什么也没有,只有一个readm
github将本地仓库关联到远程仓库:git remote add origin
我们本地有一个仓库,我们想把它推送到远程上去,很简单,我们只需要使用git remote add origin命令就可以了,ongin是github上的仓库名称,意思是远程仓库的意思。
首先选择仓库的code找到github生成的远程仓库链接
然后关联
git remote add origin git@github.com:beiszhihao/test.git
然后使用git push推送到远程
git push -u origin master
push:将本地仓库与远程仓库合并
-u:将本地仓库分支与远程仓库分支一起合并,就是说将master的分支也提交上去,这样你就可以在远程仓库上看到你在本地仓库的master中创建了多少分支,不加这个参数只将当前的master与远程的合并,没有分支的历史记录,也不能切换分支
origin:远程仓库的意思,如果这个仓库是远程的那么必须使用这个选项
master:提交本地matser分支仓库
注意第一次提交ssh会让你验证是否来自github
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
这里输入yes就可以了
我们不需要登录,因为github上的ssh列表里有这台机器
注意第一次的时候加上-u就可以了,因为我们本地其它可能有很多分支也提交上去,以后只提交最新代码就可以了git push origin master,不需要在提交其它分支
这个时候你可以在github上看到有提交记录
但是什么都没有,因为这个分支是main,我们提交的是master
选中它然后切换到master
默认是没有master的,这是我们新添加的分支
看到有文件了。
github上已经默认是main作为主仓库了,这个原因是因为种族运动的原因,master也代表主人,类似奴隶制,所以github已经替换默认master为main
git将远程仓库关联到本地和拉取指定分支、切换远程分支:git clone
当我们远程有仓库时,想要关联到本地只需要使用git clone就可以了
新建一个空目录,不要git init
使用git clone会自动帮我们初始化
鉴于刚刚的,我们上传的代码在远程仓库中有一个默认的main和master,由于我们最初上传的分支是master,所以github给我们创建了一个新的分支叫master,并没有关联到mian中,我们拉取时,默认拉取的是main分支
所以我们可以使用git clone -b分支名 仓库地址来指定分支
github提交本地仓库到远程仓库:git add、git commit、git push
我们修改了master上的分支代码,然后使用git add提交到缓存区,在使用commit提交到本地仓库,在使用push推送到远程就可以了,非常简单,命令都是我们学过的
8、Hbulider如何提交项目到码云
1、首先在HBuiler的工具选项中下载git插件
2、选中要提交的项目的,右击,如图所示,选择提交
3、这个git commit的默认分支是master
然后在码云上看到提交的项目啦