【Git的全面总结】

大实训第一天Git总结

如何查看git安装的版本
  • git --version (查看git版本)
  • 键盘 Tab (当我打开git终端进行操作的时候 双击Tab会git命令会自动补全)
1.0、怎么安装git

我们可以到廖雪峰的官网上去看怎么安装,官网地址:安装Git - 廖雪峰的官网网站 上面有详细的解说,如果是window系统的话,安装64位的,之后再选 64-bit Git for Windows Setup. 安装稳定版本。

1.1、什么是git

git是一个版本管理系统,它可以将你每次修改后的内容从新提交到git上,并且有版本回退功能可以让我们对一些错误有改动有后悔的机会,git设计的初衷是解决团队开发。

1.2 git基本工作流程
git仓库暂存区工作目录
用来存放提交记录的临时存放被修改的文件被git管理的项目目录

在这里插入图片描述
流程:将工作目录中的代码提交到暂存区,然后在提交到git仓库

1.3 Git 的使用
(1) Git 使用前配置

在使用 git 前,需要告诉 git 你是谁,在向 git 仓库中提交时需要用到。

1、配置提交人姓名:git config --global user.name 提交人姓名
2、配置提交人邮箱:git config --global user.email 提交人邮箱
3、查看git配置信息:git config --list (分别查看 git config user.name || git config user.email)
注意

如果要对配置信息进行修改,重复上述命令即可。

配置只需要执行一次。

1.4 提交步骤

1、git init 初始化git仓库 (attrib -r -h .git. 可以显示文件)
2、git status 查看文件状态
3、git add 文件列表 (将你改过的内容提交暂存区)
4、git commit -m 提交信息 向仓库中提交代码
5、git log 查看提交记录

1.5 撤销
  • 用暂存区中的文件覆盖工作目录中的文件: git checkout 文件名
  • 将文件从暂存区中删除: git rm --cached 文件名
  • 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录:git reset --hard 填内容的ID (id的获取通过 git log)
    在这里插入图片描述
2. Git进阶

2.1 分支
为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。

使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。

在这里插入图片描述

2.2分支细分

1、主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支,但是现在github上面更新后的分支名为main,我们比较习惯用的还是master分支名。
在这里插入图片描述
2、开发分支(develop):作为开发的分支,基于 master 分支创建,它是master里边的子分支。
在这里插入图片描述
3、功能分支(feature):作为开发具体功能的分支,基于开发分支创建
在这里插入图片描述

功能分支 -> 开发分支 -> 主分支
2.3 分支命令

git branch 查看分支

git branch 分支名称 创建分支 (它是相当于复制了一份主分支)

git checkout 分支名称 切换分支

git merge 来源分支 合并分支 (备注:必须在master主分支上才能合并develop分支)

git branch -d 分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)

2.4 暂时保存更改

在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。

使用场景:分支临时切换

存储临时改动:git stash
恢复改动:git stash pop

3.2 多人协作开发流程

A在自己的计算机中创建本地仓库
A在github中创建远程仓库
A将本地仓库推送到远程仓库
B克隆远程仓库到本地进行开发
B将本地仓库中开发的内容推送到远程仓库
A将远程仓库中的最新内容拉去到本地
在这里插入图片描述
在这里插入图片描述

3. git 与svn比较

git: 分布式版本控制系统,免费而超好用的gitgitHub 是使用git进行版本控制的代码管理网站

SVN: 集中式的版本控制系统,而Git是分布式版本控制系统。

区别:集中式版本控制系统是,干活的时候用的都是自己的电脑所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。

​ 中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆

​ 集中式版本控制系统最大的毛病就是必须联网才能工作。

​ 分布式版本控制系统根本没有‘中央服务器’,每个人的电脑上都是一个完整的版本库,这样就可以不用联网了,

​ 但是如果你在自己电脑上修改了文件A,你的同事也修改了A,你们两个需要互相推送就可以看到对方的修改了。

​ 分布式版本控制系统通常也有一台充当‘中央服务器’的电脑,这个服务器用来‘交换大家的修改’,交换修改更方便。

​ Git极其强大的分支管理

Git常用操作命令:

  1. 远程仓库相关命令

检出仓库:$ git clone git://github.com/jquery/jquery.git

查看远程仓库:$ git remote -v

添加远程仓库:$ git remote add [name] [url]

删除远程仓库:$ git remote rm [name]

修改远程仓库:$ git remote set-url --push [name] [newUrl]

拉取远程仓库:$ git pull [remoteName] [localBranchName]

推送远程仓库:$ git push [remoteName] [localBranchName]

*如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

$git push origin test:master // 提交本地test分支作为远程的master分支

$git push origin test:test // 提交本地test分支作为远程的test分支

2)分支(branch)操作相关命令

查看本地分支:$ git branch

查看远程分支:$ git branch -r

创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支

切换分支:$ git checkout [name]

创建新分支并立即切换到新分支:$ git checkout -b [name]

删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项

合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并

创建远程分支(本地分支push到远程):$ git push origin [name]

删除远程分支:$ git push origin :heads/[name] 或 $ gitpush origin :[name]

*创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)

$git symbolic-ref HEAD refs/heads/[name]

$rm .git/index

$git clean -fdx

3)版本(tag)操作相关命令

查看版本:$ git tag

创建版本:$ git tag [name]

删除版本:$ git tag -d [name]

查看远程版本:$ git tag -r

创建远程版本(本地版本push到远程):$ git push origin [name]

删除远程版本:$ git push origin :refs/tags/[name]

合并远程仓库的tag到本地:$ git pull origin --tags

上传本地tag到远程仓库:$ git push origin --tags

创建带注释的tag:$ git tag -a [name] -m ‘yourMessage’

  1. 子模块(submodule)相关操作命令

添加子模块:$ git submodule add [url] [path]

如:$git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs

初始化子模块:$ git submodule init ----只在首次检出仓库时运行一次就行

更新子模块:$ git submodule update ----每次更新或切换分支后都需要运行一下

删除子模块:(分4步走哦)

  1. $ git rm --cached [path]

  2. 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉

  3. 编辑“ .git/config”文件,将子模块的相关配置节点删除掉

  4. 手动删除子模块残留的目录

5)忽略一些文件、文件夹不提交

在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

target

bin

*.db

✳ 重点 Git 常用命令

在公司里边玩转git的步骤
1、如何初始化一个本地仓库
  • 第一步:先创建一个空的文件夹
  • git init 先初始化一个本地的仓库
  • 初始化之后,文件夹里边会有一个.git文件,它是一个隐藏文件
  • 可以通过attrib -r -h .git (然后git文件显示)
  • 初始化的git仓库是属于主分支
    在这里插入图片描述
2、查看状态、存放到暂存区、 提交到仓库

第二步:

  • git add 文件名 (将你写的或者是修改的内容提交到暂存区)
  • git add . (git add后面加点的话,是提交所有的文件夹)
  • git status 查看git状态
  • git commit -m " 修改之后的描述" (将暂存区中的内容提交到git仓库上)
    在这里插入图片描述

git diff 文件名 (通过命令查找工作区内容和仓库内容不同)

git branch 查看本地所有分支

git branch 分支名 (创建一个新的分支)

git checkout 分支名 (切换到分支)

git merge 合并分支 (注意:合并分支必须要切换到主分支上才能合并)

git push (将本地推送到远程仓库)

版本回退,并回退到哪一个版本
  • git reflog (查看版本信息)
  • git log (查看版本详细信息)
  • git reset --hard 版本id (时光回退)
    在这里插入图片描述

————————————上边git本地仓库的流程 下边是扩展————————————————
git branch -a 查看所有的分支

git branch -r 查看本地所有分支

git commit -am “init” 提交并且加注释

git push origin master 将文件给推到服务器上

git remote show origin 显示远程库origin里的资源

git push origin master:develop

git push origin master:hb-dev 将本地库与服务器上的库进行关联

git checkout --track origin/dev 切换到远程dev分支

git branch -D master develop 删除本地库develop

git checkout -b dev 建立一个新的本地分支dev

git merge origin/dev 将分支dev与当前分支进行合并

git checkout dev 切换到本地dev分支

git remote show 查看远程库

git rm 文件名(包括路径) 从git中删除指定文件

git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来

git config --list 看所有用户

git ls-files 看已经被提交的

git rm [file name] 删除一个文件

git commit -a 提交当前repos的所有的改变

git add [file name] 添加一个文件到git index

git commit -v 当你用-v参数的时候可以看commit的差异

git commit -m “This is the message describing the commit” 添加

commit信息

git commit -a -a是代表add,把所有的change加到git index里然后再
commit

git commit -a -v 一般提交命令

git log 看你commit的日志

git diff 查看尚未暂存的更新

git rm a.a 移除文件(从暂存区和工作区中删除)

git rm --cached a.a 移除文件(只从暂存区中删除)

git commit -m “remove” 移除文件(从Git中删除)

git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)

git diff --cached 或 $ git diff --staged 查看尚未提交的更新

git stash push 将文件给push到一个临时空间中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值