Git基本使用

一:Git是什么?
Git是目前世界上最先进的分布式版本控制系统。

二:SVN与Git的最主要的区别?
1.SVN是集中式版本控制系统,版本库是集中放在中央服务器的。
2.Git是分布式版本控制系统,那么它就没有中央服务器的。

三:git安装
安装下载地址链接: https://git-scm.com/download(下载好了之后就傻瓜式操作点下一步就好了)
安装成功桌面右键,会出现如下图:



其中GUI为用户界面模式,Bash为命令行模式,这里就以Bash为例子介绍git的基本使用方法(其实相比于GUI,个人觉得Bash更容易学习理解)。

四:理解工作区与暂存区的区别
工作区: 就是你在电脑上看到的目录,比如目录下test1.txt里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository): 工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

我们前面说过使用Git提交文件到版本库有两步:
第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。

五:git基本操作
1、当然是创建版本库:
什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。(此时创建的版本库是 testTwo)



mkdir新建一个目录,cd打开此目录,pwd查看此目录路径

2、通过命令 git init 把这个目录变成git可以管理的仓库



这时会在testTwo目录中生成一个.git(没出现可能是隐藏了)文件夹

3、git add添加 与 git commit提交(关键的两步)
举个小例子:
在版本库testTwo目录下新建一个test1.txt 文档 内容如下:11111
第一步:使用命令 git add test1.txt添加到暂存区里面去。(git add . 提交全部)
第二步:用命令 git commit -m 文件提交到仓库。(注意 -m 后面是提交时添加的注释)
第三步:用命令 git status来查看是否还有文件未提交。
第四步:用命令 git pull 更新 (命令用于从远程获取代码并合并本地的版本)。
第五步:用命令 git push 推送到远程仓库。



4、git diff的使用
在test1.txt中添加内容22222,没有进行git add add/or git commit 操作,也就是说修改后的test1.txt 还在工作区。这时执行git status 它会提示 modified:test1.txt,意思是说,有一个修改的文件未提交。可以用 cat test1.txt 查看文件内容 。(重点) 在未提交的情况下 git diff 可以查看修改了什么内容



如果执行了git add,则如下图



5、版本回退
查看历史记录 git log, git log – –pretty=oneline信息简化



版本回退:
第一种:git reset --hard HEAD^ ,如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推,如果回退到更久的版本则命令操作:git reset --hard HEAD~100
如下图展示:



第二种:通过版本号回退 git reset --hard 版本号。获取版本号:git reflog
如下图所示:



6、Git撤销修改和删除文件操作
撤销: git checkout – file 可以撤销某个文件在工作区的修改



删除: rm 文件,看下图:



六 :远程仓库
1、把本地仓库的内容推送到GitHub仓库:
先在GitHub上新建一个项目



在本地的testTwo仓库下运行命令:
git remote add origin https://github.com/shuaijieMrsZhang/testTwo.git (这里要写自己的地址)

然后把本地库的内容推送到远程,使用 git push origin master命令,实际上是把当前分支master推送到远程 。
注意: 第一次推送git push -u origin master,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令:git push origin master。



从现在起,只要本地作了提交,就可以通过如下命令:
git push origin master
把本地master分支的最新修改推送到github上了,现在你就拥有了真正的分布式版本库了。

2、如何从远程仓库克隆?
克隆执行命令:git clone https://github.com/shuaijieMrsZhang/testTwo.git

如果在git clone 项目时报错OpenSSL SSL_read: Connection was reset, errno 10054 ,
解决方法是: git config --global http.sslVerify “false”

七:创建与合并分支
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支。HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支。

首先,我们来创建dev分支,然后切换到dev分支上。如下操作:
git checkout 命令加上 –b 参数表示创建并切换,相当于如下:
git branch dev + git checkout dev = git checkout –b dev

查看分支: git branch



合并分支: git merge



总结创建与合并分支命令如下:
♦查看分支:git branch
♦创建分支:git branch name
♦切换分支:git checkout name
♦创建+切换分支:git checkout –b name
♦合并某分支到当前分支:git merge name
♦删除分支:git branch –d name

分支策略: 首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的dev分支上干活,干完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。

Git基本常用命令如下
♦mkdir: XX (创建一个空目录 XX指目录名)

♦pwd: 显示当前目录的路径。

♦git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。

♦git add XX 把xx文件添加到暂存区去。

♦git commit –m “XX” 提交文件 –m 后面的是注释。

♦git pull 命令用于从远程获取代码并合并本地的版本。

♦git status 查看仓库状态

♦git diff XX 查看XX文件修改了那些内容

♦git log 查看历史记录

♦git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本(如果想回退到100个版本,使用git reset –hard HEAD~100 )

♦cat XX 查看XX文件内容

♦git reflog 查看历史记录的版本号id

♦git checkout – XX 把XX文件在工作区的修改全部撤销。

♦git rm XX 删除XX文件

♦git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库

♦git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库

♦git clone https://github.com/tugenhua0707/testgit 从远程库中克隆

♦git checkout –b dev 创建dev分支 并切换到dev分支上

♦git branch 查看当前所有的分支

♦git checkout master 切换回master分支

♦git merge dev 在当前的分支上合并dev分支

♦git branch –d dev 删除dev分支

♦git branch name 创建分支

♦git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作

♦git stash list 查看所有被隐藏的文件列表

♦git stash apply 恢复被隐藏的文件,但是内容不删除

♦git stash drop 删除文件

♦git stash pop 恢复文件的同时 也删除文件

♦git remote 查看远程库的信息

♦git remote –v 查看远程库的详细信息

♦git push origin master Git会把master分支推送到远程库对应的远程分支上

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论