Git

Git简介

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git 与 SVN 区别

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。

Git 与 SVN 区别点:

  1. Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
  2. Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
  3. Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
  4. Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
  5. Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

 

Git下载及安装

↓↓先去Git官网下载所需要的对应版本↓↓↓

Git官网 https://git-scm.com/

 

Git环境变量配置

C:\Program Files\Git\bin;

C:\Program Files\Git\mingw64\libexec\git-core;

C:\Program Files\Git\mingw64\bin

 

安装完成后cmd输入git 出现以下提示则说明安装成功!!!

查看版本号

git --version

 

拉取代码

没有VPN用这个镜像代理克隆 https://www.gitclone.com/

1.先去找到你要下载的代码

 

 选择你要下载到本地的路径

 

git clone <https网址>

拉取项目完成!!!

本地开发

 注意:如果没有自己的分支,直接提交代码,是直接影响了主分支

 为了保证线上的项目稳定,我们要保护主分支,不能直接多个人在主分支上进行开发!!!

 所以每个程序员都要有自己的分支!!!

 分支规范:

  1. 每个开发者一个独立分支
  2. 每个需求一个分支,粒度更细

 

创建分支

进入项目目录下

 

 

 创建和切换分支

git checkout -b <分支名>

创建成功!!!

查看当前分支状态(未修改)

git status

当我修改一个文件内容

 再次用git status命令 查看修改了什么文件 (红色表示没有被添加到本地)

用add命令添加到本地仓库 这个.表示添加所有的文件

git add .

再次用git status命令 变绿说明添加成功!!!

查看代码上次和当前代码的对比

git diff <分支名>

 比较两个分支上最后 commit 的内容的差别

git diff <分支名1> <分支名2>

 

提交代码

遵循提交规范,需要在提交时填写一些信息,来说明本次修改做了什么事情

add xxx
update xxx
rm xxx

 

提交本地仓库(只是在本地做了修改并没有真正提交到github上)

git commit -m '<补充说明>'

 

注意:提交的时候引号里的内容不能有分支名

 

注意:如果提示要登录github

 

 则需按命令提示来用命令登录github

 

显示提交记录(如果需要在后面指定提交的文件名后面就加文件名字)HEAD就是当前分支 箭头(- >)表示切换到的分支

git log

 

 

提交到远程

如果是第一次提交要用以下代码(需要登录)因为远程没分支你的分支

git push --set-upstream origin <分支名>

这里要输入权限密钥

 

 

如果提示403 说明没权限提交代码到别人仓库

 

 

如何给权限

在github项目里访问管理 添加合作成员的github用户名

 

 

第二次后就直接推就行了

git push <仓库地址>

 

分支合并

一般情况下是Leader做合并分支  可视化界面↓

 

 

查询git命令大全网址

猴子都能看懂的命令教程:https://backlog.com/git-tutorial/cn/

 

git强推命令
git reset --hard +版本的名称重置当前的代码
git push -u origin master --force 强制将本地的代码推送到远端
不行就是-f

 

在使用git的过程中经常需要使用到git pull命令,在更新远端代码的同时如果与本地代码产生冲突了,

那么冲突的文件中就出现了需要手动合并的部分,而git pull --rebase不同的地方则是当有这些冲突存在时,

git帮我们自动创建了一个新的分支,并且git告诉你接下来你要在这个新的分支上处理这个冲突,

此时执行git status命令后可以看到首要的提示是这样的:

rebase in progress; onto 24f42c6
You are currently rebasing branch 'master' on '24f42c6'.
(fix conflicts and then run "git rebase --continue")

并且git还告诉我们 fix conflicts and then run "git rebase --continue",意思是解决冲突然后执行git rebase --continue命令,

其实git rebase --continue的正确操作应该是确认处理好冲突后则将调整好的文件添加到暂存区,并执行git rebase --continue命令告诉git,我已经解决好冲突了,

并且已经将处理后的文件添加到了暂存区,现在可以将这些文件commit了,

简单来讲就是正常的解决冲突过程是

1,git add .

2,git commit -m "..." 

3,git push时因为本地仓库代码与远程仓代码有冲突,所以接下来

4,git pull拉取远程代码,而冲突需要手动解决

5,解决好后重新进行git add . git commit -m".." git push

而git pull 这一步如果加上了 --rebase的选项,那么第5步操作将变成如下

git add .

git rebase --continue

git push

所以git pull --rebase用在合并代码的时候其作用就是在一个随机创建的分支上处理冲突,避免了直接污染原来的分区

posted @ 2021-09-09 03:05  Sakimir  阅读(25)  评论(0)    收藏  举报