Git工具使用

目录

一、Git

二、Git安装初始化

1、安装

2、配置初始化

三、Git命令

1、状态查看相关指令

2、将文件修改添加至暂存区

3、将暂存区所以的修改内容提交到当前本地分支

4、撤销修改

5、存储修改

6、分支操作

7、merge回退

8、将本地仓库推送至远程仓库

9、远程仓库拉取


一、Git

git是一个分布式版本控制系统

 

工作区(Working Directiry): 是你克隆的项目的一个副本文件。工作区是对某个版本独立取出来的内容,放在本地磁盘上供你是要或修改

暂存区(staging):暂存区是一个文件,保存了下次将要提交的文件列表信息

本地仓库(local):当在工作区要提交更新的内容时,将找到暂存区的文件,将快照永久性存储到Git本地仓库

远程仓库(remote):为了让别人看到你的修改,需要将你的修改推送到远程仓库。同理,如果你想同步别人的修改,需要从远程仓库拉去更新

版本库(Respository): 工作区隐藏的 .git 目录,Git的版本库里存了很多东西,其中最重要的就是称为 stage(或者叫 index)的暂存区,和与远程仓库同步的本地仓库

各种git***

  • git 是一种版本控制系统,是一个命令,是一种工具。
  • github 是一个基于git实现在线代码托管的仓库,向互联网开放,企业版要收钱。
  • gitlab 类似 github,一般用于在企业内搭建git私服,要自己搭环境。
  • gitee 即码云,是 oschina 免费给企业用的,不用自己搭建环境。
  • git-ce 是社区版,gitlab-ee是企业版,收费版。

GitHub、GitLab 不同点:

1、GitHub如果使用私有仓库,是需要付费的,GitLab可以在上面搭建私人的免费仓库。
2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相对于GitHub,它有不少的特色:
(1)允许免费设置仓库权限
(2)允许用户选择分享一个project的部分代码
(3)允许用户设置project的获取权限,进一步提升安全性
(4)可以设置获取到团队整体的改进进度
(5)通过innersourcing让不在权限范围内的人访问不到该资源

二、Git安装初始化

1、安装

安装过程比较简单,Window和Linux环境下安装方式下安装有所不同,可自行百度

2、配置初始化

配置某账号下所以的Git仓库

git config --global user.name "用户名"

git config --global ueer.email "邮箱"

只配置当前仓库

git config --local user.name "用户名"

git config --local ueer.email "邮箱"

查看当前Git配置

git config --global --list

初始化一个Git仓库

git init

 

三、Git命令

1、状态查看相关指令

git status #查看仓库当前状态

git diff      #查看修改的内容

git log      #显示从近到远的提交日志

git relog  #查看历史版本号

 

git remote -v   #查看远程路径

gitk --all          #打开图形界面查看

.git/config      #git路径的配置文件

2、将文件修改添加至暂存区

git add <file-name>            #将指定文件至暂存区

git add . 或 git add --all      #将工作区所以文件添加至暂存区

3、将暂存区所以的修改内容提交到当前本地仓库

git commit -m "更新注释"s

git commit -m '更新注释 回车 更新注释'

git commit --amend   修改最近一次的commit

4、撤销修改

  • 使用场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
  • 使用场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
  • 使用场景3:已经提交了不合适的修改到本地仓库时,想要撤销本次提交,使用git reset --hard HEAD~n 或 git reset --hard commintid回退到之前的版本

git checkout -- file-name   #在未放到暂存区(git add)前,撤销指定文件在工作区的修改,放到暂存区后不可撤销,回退到与版本

                                               库 一样的状态

git checkout -- .                  #在未放到暂存区(git add)前,撤销所有文件在工作区的修改,放到暂存区后不可撤销,回退到与版本                                                   库一样的状态

git reset HEAD file-name  #在未提交(git commit)前,撤销指定文件在暂存区的修改,重新放到工作区。HEAD是当前分支版

                                                   本顶端的别名,也就是在当前分支你最近的一个提交

git reset [--Param] HEAD~n          #在提交(git commit)后,回退到上n个版本

git reset [--Param] commitid        #在提交(git commit)后,回退到commitid版本号的版本,使用前使用git log 或 git reflog 查看

                                                             每次提交的commitid

参数(Param)说明:

--soft 只还原HEAD

--mixed 只还原HEAD和Index,此时HEAD与暂存区的修改一致,默认参数

--hard 还原HEAD\Index\Working,此时工作区的修改也会被还原

5、存储修改(存草稿)

  • 使用场景1:当正在某个分支 如dev 进行开发,而此时需要切换到其他分支 如test 进行开发,而当前在dev分支上的开发还没有完成,又不想提交,这时就可以使用 git stash将当前的修改先保存至堆栈区;当在test分支的开发完成后,在切换到dev分支继续开发,就可以从堆栈区恢复之前修改的内容
  • 使用场景2:本该在dev分支下开发的内容,却在test分支开发了,需要重新切换到dev正确的分支进行开发,此时就可以使用git stash保存当前的修改,切回到dev分支后,再恢复之前修改的内容

总结:

  1. git stash的作用就是将目前不想提交的修改(工作区和暂存区的内容)保存至堆栈中,然后在某个分支上恢复出堆栈的内容,并不限制于只能在做修改的分支,在切换到其他任何分支后都可以从堆栈恢复修改的内容。可以理解为堆栈在git版本控制里是公用的
  2. 存储到堆栈的修改,如果想要提交,必须先从堆栈恢复修改的内容,然后再提交
  3. 没有在git版本控制里的文件,比如新增加的文件,还没有add,这个时候stash是不会会保存的

git stash save "save message"          : 执行存储时,添加备注,方便查找只有git stash 也要可以的

git stash list                :查看存储过的列表

git stash show            :显示第一次存储的改动

git stash show stash@{n}   :显示第n次的存储改动,如git stash show@{1}查看第二次的改动,n可通过git stash list查看

git stash apply           :应用第一次的改动,不会发存储从堆栈中删除

git stash apply stash@{n}  :应用第n次的改动

git stash pop             :恢复第一次的改动,并将缓存从堆栈中删除

git stash pop stash@{n}     :恢复第n次的改动,并将缓存从堆栈中删除

git stash drop            :丢弃第一次改动,并从堆栈中删除

git stash drop stash@{n}   :丢弃第n次的改动,并从堆栈中删除

git stash clear           :删除堆栈中所有的缓存

6、分支操作

  • 使用场景1:将分支名称为 oldbranch 改为 newbranch 

1、将本地分支oldbranch切一个分支到本地

     git branch -m oldbranch newbranch

2、删除远程分支

    git push --delete origin oldbranch

3、将本地新分支推送到远程

   git push origin newbranch

  • 使用场景2:某个分支下创建分支

https://blog.csdn.net/RollingMikuzn/article/details/81134293

git brach                                               :列出本地分支

git brach -r                                           :列出远程分支

git brach -a                                          :列出所有分支

git brach --merge                                :查看已经合并到当前分支的分支

git brach test                                       :新建test分支

git brach -m old-name new-name        :修改分支名称,old-nama为旧的分支名,new-name为新的分支名

git brach -d test                                  :删除本地test分支

git checkout test                                 :切换到test分支

git checkout -b test                            :新建并切换到test分支

git merge test                                      :将test分支合并到当前分支

git cherry-pick commit                      :练选合并,将某个commit合并到当前分支

7、merge回退

  • 方法1:reset到merge前的版本

git checkout <merge操作的分支>

git reset --haed <merge前的版本号>

8、将本地仓库推送至远程仓库

  • add 和 commit 都只是在本地分支dev1上操作,如果想在其他的仓库同一分支dev2中也能看见你的修改,那就必须先推送到远程仓库,然后dev2再从远程仓库拉取。前提是dev1与dev2关联的同一个远程仓库
  • git push <远程主机名> <本地分支名>:<远程分支名> 将本地分支的更新,推送到远程主机
  • 不带任何参数的 git push默认只推送当前分支

git remote add origin <地址>   :关联远程仓库

git push origin master            :将本地master分支推送到远程master分支

git push origin                         :将当前分支推送到远端对应分支,本地分支与远程分支之间存在追踪关系

git push                                    :将当前分支推送到远端对应分支,本地分支只有一个远程追踪分支

git push --all origin                  :将本地所以得分支全部推送至远程主机

git push --force origin             :将本地分支强制推送至远程主机

git brach -r <brach> = git push origin :<remote-brach>      :删除远程指定分支

9、远程仓库拉取

  • git fetch <远程主机名> <分支名> 将某个远程主机的更新,取回本地。并不会与本地的分支进行合并,不会对本地的修改造成影响。通常用来查看其他人的修改
  • git pull <远程主机名> <远程分支名>:<本地分支名> 取回远程主机某个分支的更新,再与本地分支进行合并
  • git clone <远程仓库地址>

git fetch origin master       :拉取远程主机主分支的更新

git pull origin master         :拉取远程主机的主分支再与本地分支进行合并

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值