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