git的使用

Geminiyu Geminiyu     2022-11-01     639

关键词:

1 Git简介
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
2 Windows上安装Git
  1. 在网上下载国内镜像Git的安装程序
  2. 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
  3. 安装完成后,还需要最后一步设置,在命令行输入:(注:git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置)
  • $ git config --global user.name "Your Name"
  • $ git config --global user.email "email@example.com"
3 创建版本库
1、选择一个合适的地方,创建一个空目录:
  • $ mkdir app//创建一个叫app的文件夹
  • $ cd app //切换到app目录下
  • $ pwd //查看当前目
2 、通过git init命令把这个目录变成Git可以管理的仓库(如果已有文件,则忽略第一步):
瞬间Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository)
  • 目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
  • 如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。
3、现在我们编写一个readme.txt文件放在app目录下,内容如下:
1111
然后:
  1. 用命令git add告诉Git,把文件添加到仓库:
$ git add readme.txt
执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
  1. 用命令git commit告诉Git,把文件提交到仓库:
$ git commit -m "wrote a readme file"
解释一下git commit命令,-m后面输入的是本次提交的说明.
为什么Git添加文件需要addcommit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:
  • $ git add file1.txt
  • $ git add file2.txt file3.txt
  • $ git commit -m "add 3 files."
4、成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,我们继续修改readme.txt文件,改成如下内容:
11111
22222
现在,运行git status命令看看结果:
git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
5、虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看:
知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步,第一步是git add,在执行第二步git commit之前,我们再运行git status看看当前仓库的状态:
git status告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了。
提交后,我们再用git status命令看看仓库的当前状态:
Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。
4 版本回退
4.1 git log
“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作.
实际工作中,版本控制系统用git log命令可以告诉我们历史记录:
git log命令显示从最近到最远的提交日志。
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline参数:
你看到的一大串类似3628164...882e1e0的是commit id(版本号),一大串数字防止跟别人的版本号冲突
4.2 git reset
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
现在,我们要把当前版本回退到上一个版本,就可以使用git reset命令:$ git reset --hard HEAD^(注:--hard参数
还可以继续回退到再上一个版本,不过且慢,然我们用git log再看看现在版本库的状态:
 
  • 此时你反悔不想回退,想回到刚刚删除的那个未来版本,办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个版本commit id3628164...,于是就可以指定回到未来的某个版本:
$ git reset --hard 3628164
版本号没必要写全,前几位就可以了。
  • 上面的命令行窗口被关掉了!在Git中,总是有后悔药可以吃的。你必须找到commit id。Git提供了一个命令git reflog用来记录你的每一次命令:
4.3 小结
现在总结一下:
  • HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
  • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
  • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
5 撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- fileName
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD fileName,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
6 添加远程库
6.1 本地库与远程库关联
git remote add origin https地址
添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。
6.2 把本地库的所有内容推送到远程库上
$ git push -u(第一次提交到远程空库,以后可以忽略) <远程库名> <远程库分支名> (如:$ git push -u origin master)
7 从远程库克隆
远程库已经准备好了,下一步是用命令git clone克隆一个本地库:
$ git clone https地址
8 分支管理
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。
8.1 Git分支管理
9 解决冲突
当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。
git log --graph命令可以看到分支合并图。
具体原理可以查看:
10 Bug分支
当你接到一个很急的bug,但是,等等,当前正在dev上进行的工作还没有提交,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作。
现在在比如develop分支上创建一个bug分支,bug解决后合并到develop分支,并删除bug分支,现在要接着完成之前的工作。
  • git stash //当前工作现场“储藏”起来
  • $ git stash list //查看刚才的工作现场存到哪去了
  • git stash apply //恢复后,stash内容并不删除,你需要用git stash drop来删除;
  • git stash pop //恢复的同时把stash内容也删了
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除
11 Git与可视化工具小乌龟对应
  • git提交(c)->master //相当于“git add”,提交到本地仓库
  • Git同步 //相当于git push origin master 提交到远程仓库(其中分支可选)
12 重要
当我想从远程仓库里拉取一条本地不存在的分支时:git checkout -b 本地分支名 origin/远程分支名,这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来。如果出现提示:
fatal: Cannot update paths and switch to branch \'dev2\' at the same time. Did you intend to checkout \'origin/dev2\' which can not be resolved as commit?
表示拉取不成功。我们需要先执行:git fetch
然后再执行
git checkout -b 本地分支名 origin/远程分支名

git的基本使用

参考技术AGit的一些基本使用方法:安装Git:首先需要在电脑上安装Git。可以从Git的官方网站下载适合自己操作系统的Git安装包,然后按照提示安装。初始化一个Git仓库:可以通过命令行进入到代码存储的目录,然后运行gitinit命... 查看详情

git的使用

Git的使用Git的使用Git的安装Windowsubuntu建立本地仓库克隆远程仓库本地初始化仓库三个关键的区域WorkspaceStageRepository基本操作增改文件撤销修改分枝操作创建分枝合并分枝解决冲突保存工作区状态后记最近我和朋友们讨论到git使... 查看详情

git使用基础篇

...,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的... 查看详情

git工具的日常操作使用

git工具的日常操作使用一、git介绍二、git的四个区域1.git四个区域名称2.git四个区域工作关系三、git工作的三种场景1.本地的目录已经有代码,进行版本控制2.本地没有代码,直接创建代码版本控制的工作区3.直接从github仓库中下... 查看详情

git版本控制工具的使用

目录git版本管理工具使用一丶Git的下载与安装1.windows下的git的下载与安装2.linux下的git安装二丶常用命令三丶Git仓库1.配置仓库信息2.仓库的创建于管理四丶远程仓库五丶分支管理六丶标签管理git版本管理工具使用一丶Git的下载与... 查看详情

git的使用(代码片段)

git的使用git和github的区别Git是一种方法。而GitHub只是使用这种方法的一个代码仓库,就是git是操作的,GitHub是个网址初始化git仓储新建一个项目project,点进目录右击选择gitbashgitinit#初始化仓库,这个git对我们项目的代码进行备... 查看详情

工作后——git的使用总结

工作后——Git的使用总结一、Git简介、安装及初步配置1、版本控制分类2、版本控制工具git的作用3、Git安装4、Git初步配置5、Git理论二、与远程仓库建立连接1、先有本地库2、先有远程库三、tortoisegit的使用1、创建仓库并填写仓... 查看详情

git的基本使用(代码片段)

目录git的介绍补充:git的基础使用相关知识区域:文件状态:本地库与远程库:windows中git的安装git的使用命令的使用位置:初始化仓库:设置签名:查看状态:提交到暂存区:提交到本地库:从暂存区移除文件:文件重命名:... 查看详情

git的使用学习git的操作使用(代码片段)

创建版本库什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某... 查看详情

git图形界面的使用

如果你已经掌握了不少使用Git命令行操作的知识。你学会了操作本地文件,通过网络连接你的仓库,以及与他人进行有效率的合作。但是故事并未就此结束;Git通常只是更大的生态圈的一部分,在某些情况下使用终端并不是最合... 查看详情

git图形界面的使用

如果你已经掌握了不少使用Git命令行操作的知识。你学会了操作本地文件,通过网络连接你的仓库,以及与他人进行有效率的合作。但是故事并未就此结束;Git通常只是更大的生态圈的一部分,在某些情况下使用终端并不是最合... 查看详情

git图形界面的使用

如果你已经掌握了不少使用Git命令行操作的知识。你学会了操作本地文件,通过网络连接你的仓库,以及与他人进行有效率的合作。但是故事并未就此结束;Git通常只是更大的生态圈的一部分,在某些情况下使用终端并不是最合... 查看详情

总结下自己git的使用

我使用的是win7版本的git(git安装略去,自行搜索)。本地git使用:1、在本地某个盘下新建一个文件夹,例:在E:盘创建gitProject文件夹,打开git命令窗口。2、git命令窗口进入gitProject文件夹,命令gitinit把这个文件夹变成Git可管理... 查看详情

git的使用---3.git的配置

...配置全局生效,也就是说你这台机器上所有的Git仓库都会使用这个配置。Git也可以对 查看详情

git的使用

WebStorm使用git步骤1\File-Settings 2\VersionControl-git完成以上两个步骤就可以上传git项目了  上面的3个空分别添上需要上传的git项目路径,WebStorm项目空间路径,项目名称,点击Clone进行项目克隆,完工。 查看详情

git使用方法

git使用方法1.git介绍git是一款开源的分布式版本控制工具 在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的 git的起源作者是Linux之父:LinusBenedictTorvalds当初开发git仅仅是为了辅助Linux内核的开发(管理... 查看详情

关于git的使用

...端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议 查看详情

git的使用,pycharm中使用github(代码片段)

GIT申请GitHub账户https://github.com/创建本地Git环境Windowswindows系统需要自己下载一个安装包https://git-scm.com/downloadsmacmac本机自带git环境本地git链接githubgitinit#初始化本地git仓库执行以上命令会在本地生成一个.git文件,只有这个.git文件... 查看详情