git入门教程
- 一、工作流程
- 二、获取本地仓库
- 三、Git常用指令
- 1、查看文件状态
- 2、查看提交日志
- 3、版本回退
- 4、添加文件至忽略列表
- 三、分支
- 1、查看本地分支
- 2、创建分支
- 3、切换分支
- 4、合并分支
- 5、删除分支
- 6、解决冲突
- 四、Git远程仓库
- 1、常用的托管服务[远程仓库]
- 2、注册码云
- 3、创建远程仓库
- 4、配置ssh公钥
- 5、操作远程仓库
- 1、添加远程仓库
- 2、查看远程仓库是否添加
- 3、推送到远程仓库
- 4、从远程仓库克隆
- 5、从远程仓库中抓取和拉取
一、工作流程
二、获取本地仓库
要想使用Git对我们的代码进行版本控制,首先需要获得本地仓库
(1)在电脑的任意位置创建空目录,例如git_test作为我们的本地git仓库
(2)进入到这个目录,右键打开git bash窗口
(3)执行命令git init
(4)创建成功后即可在目录里看到.git目录
三、Git常用指令
1、查看文件状态
可以查看到它是属于上图中未跟踪的状态,我们需要添加至暂存区,并且提交到本地仓库,git add .表示将当前目录下所有的修改都加入暂存区
Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git add .Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git status
On branch master
No commits yet
Changes to be committed:(use "git rm --cached <file>..." to unstage)new file: file01.txtLenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git commit -m "add file01"
[master (root-commit) 4357b44] add file011 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 file01.txtLenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git status
On branch master
nothing to commit, working tree clean
可以看到工作区没有内容,证明创建的文件已经提交至本地仓库了
2、查看提交日志
Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git log
commit 4357b44d7605e37ea471798d0ea388472af3b4d4 (HEAD -> master)
Author: liyu <ly246824ly@163.com>
Date: Wed Apr 20 16:31:39 2022 +0800add file01
我们对上述的file01文件做一次修改,再add,再commit,之后看它的提交日志,可以看到有两次提交
Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git log
commit 0e85a804b48774a756806a68704840850268f9a6 (HEAD -> master)
Author: liyu <ly246824ly@163.com>
Date: Wed Apr 20 16:38:05 2022 +0800update file01commit 4357b44d7605e37ea471798d0ea388472af3b4d4
Author: liyu <ly246824ly@163.com>
Date: Wed Apr 20 16:31:39 2022 +0800add file01
3、版本回退
作用及其使用的命令:
作用:用于版本切换
命令:git reset --hard commitID
commitID可以使用git log指令查看
4、添加文件至忽略列表
直接将文件添加至.gitignore这个文件即可。
三、分支
几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着你可以把你的工作从开发主线上分离开来进行重大bug的修改,在你自己的分支上开发新的功能,以免影响开发主线。
1、查看本地分支
Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git branch
* master
2、创建分支
Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git branch dev01Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git branchdev01
* master
3、切换分支
$ git branchdev01
* masterLenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git checkout dev01
Switched to branch 'dev01'Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (dev01)
$ git branch
* dev01master
创建并切换到一个不存在的分支里
$ git checkout -b dev02
Switched to a new branch 'dev02'Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (dev02)
$ git branchdev01
* dev02master
4、合并分支
将一个分支上的提交,合并到另一个分支上,以dev01合并到master上为例,必须先切换到master分支里
Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ git merge dev01
Updating 4357b44..d704055
Fast-forwardfile02.txt | 01 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 file02.txt
效果图如下:
5、删除分支
$ git branch -d dev02
Deleted branch dev02 (was 4357b44).删除不了的话可以强制删除,-D
6、解决冲突
何为冲突?
当两个分支上对同一个文件的同一行内容进行的不同的修改,就会发生冲突。会把两个分支修改的内容全部显示出来,效果图如下:
如何解决?
这时需要我们指定好file01里的内容,使得count=5,然后进行add,commit等操作,再查看就是我们修改好的内容了。
Lenovo@LAPTOP-9AP25JNG MINGW64 ~/Desktop/git_test (master)
$ cat file01.txt
update count=5
四、Git远程仓库
1、常用的托管服务[远程仓库]
Git中存在两种仓库,即本地仓库和远程仓库。那我们如何搭建远程仓库呢?比较常用的有github,码云,gitlab等。
工作中用的比较多的是gitlab,因为码云和github都是把代码放在别人那边,不太安全,而gitlab是自己搭建的,较为安全。
三个远程仓库有什么区别?
1、github是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管。
2、码云是国内的一个代码托管平台,由于服务器在国内,所以相比github,码云速度会更快
3、gitlab是一个用于仓库管理系统的开源项目,使用git作为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业,学校等内部网络搭建的git私服。
2、注册码云
要想使用码云的相关服务,需要注册账号(https://gitee.com/signup)
3、创建远程仓库
注册好之后,就新建仓库,直接点击创建,效果如下:
4、配置ssh公钥
要想将本地仓库的代码推到远程仓库上,就必须两者建立联系,可以用用户名等登录,但是最常用的就是配置ssh公私钥对。
生成ssh公钥
ssh-keygen -t rsa
不断回车,如果公钥已存在,会自动覆盖
查看公钥
cat ~/.ssh/id_rsa.pub
在码云的设置里,添加公钥即可
验证是否配置成功
5、操作远程仓库
1、添加远程仓库
在本地告诉本地仓库,你所对应的远程仓库是哪一个?
先查看远程仓库的地址
然后在本地操作:
git remote add 远端名称 仓库路径
远端名称:默认是origin,取决于远端服务器设置
仓库路径:从远端服务器获取此URL
$ git remote add origin git@gitee.com:ly24/git_test.git
2、查看远程仓库是否添加
$ git remote
origin
3、推送到远程仓库
git push 远端名称 本地分支名
$ git push origin master
4、从远程仓库克隆
我们将自己的仓库推送到远端了,另外一个同学也想用我们的这个仓库,那他可以把远端仓库克隆到他本地
我们可以看到上述命令就是将远程仓库克隆到本地,本地文件夹名称为hello-git,两个文件夹的文件是一致的。
5、从远程仓库中抓取和拉取
抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
git fetch [remote name] [branch name]
如果不指定远端名称和分支名,则抓取所有分支
拉取命令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
git pull [remote name] [branch name]
如果不指定远端名称和分支名,则抓取所有并更新当前分支