基础学习-Git(分布式版本控制系统)

 学习视频推荐

http://【黑马程序员Git全套教程,完整的git项目管理工具教程,一套精通git】 https://www.bilibili.com/video/BV1MU4y1Y7h5/?p=5&share_source=copy_web&vd_source=2b85bd9be9213709642d908906c3d863

笔记推荐

https://blog.csdn.net/a18307096730/article/details/124586216?spm=1001.2014.3001.5502


https://blog.csdn.net/weixin_42312323/article/details/107407674

1、Git环境配置

安装Git

Git下载链接

https://git-scm.com/downloads

点击右键出现

Git GUI Here(Git提供的图形界面工具)

Git Bash Here(Git提供的命令行工具)

则安装成功

1.1 基本配置

打开Git Bash

1.1.1设置用户信息

git config --global user.name "zhangfeifei"

git config --global user.email "zhangfeifei@163.com"

1.1.2 查看配置信息

git config --global user.name
git config --global user.email

1.1.3 为常用指令配置别名

打开用户目录,创建.bashrc文件

部分windows系统不允许用户创建点号开头的文件,可以打开gitBash,执行 touch ~/.bashrc

在.bashrc中输入以下内容

#用于输出git提交日志
git log --pretty=oneline --all --graph --abbrev-commit
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'

#改完后利用以下命令生效
 source ~/.bashrc

1.2 获取本地仓库

要使用Git对我们的代码进行版本控制,首先需要获得本地仓库

  • 1)在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库
  • 2)进入这个目录中,点击右键打开Git bash窗口
  • 3)执行命令git init
  • 4)如果创建成功后可在文件夹下看到隐藏的.git目录。

1.3 基础操作指令

Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。

  • git add (工作区——>暂存区)
  • git commit (暂存区——>本地仓库)

1.3.1 未跟踪提交相关案例

创建 file01.txt文件

touch file01.txt

 

 查看当前状态

git status

 

 把所有的修改文件放入暂存区

git add .

 再次查看当前状态,发现file01.txt文件已经被放置到暂存区

最后的目的是把修改的文件放置到仓库进行版本控制

因此用 git commit -m "提示修改了什么" 命令提交暂存区修改的部分

git commit - "add file01.txt"

再次查看状态,发现缓存区已经清空

利用git log 命令查看提交到了哪里

git log

1.3.2 修改提交相关案例

对file01.txt文件进行编辑修改 ,i插入文字,esc退出编辑,:wq!保存退出

vim file01.txt

 查看文件当前状态

 所有的修改放置缓存区

git add .

 查看状态

 提交至仓库

git commit -m "update file 01"

查看提交日志

git log

1.3.3 版本回退

git reset --hard commitID

commitID 用git log命令查看 (在命令行能看见commitID)

commitID 还能用git reflog查看(在命令行不能看见commitID)

只要不删除文件夹,可以任意的往前往后调整版本

 1.3.4 用 .gitignore设置哪些文件无需Git管理

创建file02.a的文件

touch .file02.a

创建 .gitignore,在这个文件里列出哪些文件无需Git管理即可

touch .gitignore

编辑.gitignore,所有以.a结尾的文件均无需git管理

查看状态

 发现file02.a文件没有被提示

1.4 分支

分支是为了多个开发人员之间的开发工作互不影响,因此有了分支的概念 

1.4.1 查看有哪些分支

git branch

 1.4.2 创建分支

git branch dev01

 

1.4.3 切换分支,head指向谁,当前就在哪个分支

git checkout dev01

 以下命令分支不存在也能切换,即先创建再切换,用的更多

git checkout -b dev01

1.4.4 合并分支

刚刚在master分支提交了一个.gitignore文件,现在在dev01创建file02.txt文件,并且提交,如下(还是用上面的简写配置后看上去清晰!!!,不然就要记忆这么多的命令,git log --pretty=oneline --all --graph --abbrev-commit

  • 对于master分支,有.gitignore文件
  • 对于dev01分支,有file02.txt文件

两个分支对应两个开发人员开发的功能,下一步要对这两个分支功能进行合并,那应该怎么样做呢?

一般是把其他的分支合并到master分支上去

首先切换到master分支上

git checkout master

然后把需要合并的dev01分支合并至master分支上去

git merge dev01

随后进入该界面,按ESC,再按:WQ退出即可

查看日志

可以发现在master分支上,dev01分支指向了master分支,代表合并成功。

1.4.5 删除分支

如果有的分支不需要了,就需要对其进行删除

命令如下

#删除分支时进行检查
git branch -d dev01

#强制删除分支,不进行检查
git branch -D dev01

查看当前分支

删除分支dev01

1.4.5 合并冲突

设想一下,如果有两分支对同一个文件的同一行进行了修改,那么在合并的时候,就会有冲突,那应该如何解决呢?

当前有一个master分支,有一个file01.txt文件,文件中内容如下

现在创建一个dev分支对file01.txt文件进行修改,修改后的内容如下

再把master分支上对file01.txt文件进行修改,修改后的内容如下

现在打印日志如下

这时如何把dev分支合并到master上会发生什么呢?

直接找到出问题的文件进行处理,再重新提交即可

1.4.5 开发分支的使用原则与流程

1.3 Git远程仓库

1.3.1 常见的托管服务平台

GithubGitee、Gitlab

以Gitee为例

1.3.2 配置SSH公钥

ssh-keygen -t rsa

然后一直回车即可

获取公钥

cat ~/.ssh/id_rsa.pub

 复制生成的公钥

验证是否配置成功

ssh -T git@gitee.com

1.3.3 本地仓库与远程仓库对应

找到刚创建的仓库并且复制其SSH链接 

 添加远程仓库名为origin

git remote add origin git@gitee.com:xhdx/git_test.git

 查看是否添加成功

git remote

把本地的代码推到云仓库,并绑定关系,后续只需用git push即可

git push --set-upstream origin master

 

查看本地仓库与远程仓库的关联关系

git branch -vv

1.3.4 从远端仓库克隆

新建git_test文件夹

git clone git@gitee.com:xhdx/git_test.git

 找到远程的项目的SSH链接即可,后面可以加名字,也可以不加默认即可

1.3.5 抓取(fetch)和拉取(pull)

在第一次克隆代码后

如果代码再次更新了,再去克隆就会显得很麻烦

因此只需要更新的部分即可,操作如下

git pull

可以实现即抓取有合并的功能

git fetch

只能获取最新的部分,还得手动的去merge远程的分支,如果需要同时抓取和合并,直接git pull。

此外,有merge的地方就可能有冲突,

如一个人修改了file01.txt文件的第一行并上传到云端

另一个人也修改了file01.txt文件并提交至仓库

此时拉取就会出现报错

此处的解决办法同上的merge冲突

  • 18
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值