一篇搞定Git基本使用
Posted HUTEROX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一篇搞定Git基本使用相关的知识,希望对你有一定的参考价值。
文章目录
GitHub 与 Git 的基本关系
在说明git 的基本使用之前我们先来说说github和git之间到底有什么关系,毕竟他们都长好像有那么一点关系。首先git是一个版本控制器,什么是版本控制器,说白了就是用于管理项目代码的,当你的代码发现写错了,或者失误删除了某个文件而且是在没有备份的情况下的时候,那么使用版本控制器就可以帮助我们还原上一个还没有被修改的版本,从而帮助我们还原文件。除此之外我们还有可以使用它来进行协同开发。那么github又是什么呢,首先对于git来说,他是一个远程的代码托管平台,这个作用类似于你将你的项目代码上传到云盘上是一样的,但是显然功能要比直接上传到网盘要强大的多,那么除此之外github还是一个很好的技术交流社区,里面有很多优秀的开源项目,但是缺点也很明显由于某些特殊原因,github在国内直接访问的效果并不是很友好,当然如果只是单单想要托管代码的话,那么我们可以使用gitee或者其他的国内的托管平台。值得一提的是,这些平台是支持将github的项目迁移过来的,这样的好处就是可以提高项目的上下载速度。
GitHub仓库
首先我们来看到我们的代码仓库来看看这玩意长啥样子。
创建分支
先来说说创建分支有什么用吧,这玩意呢其实主要呢分两大块,一个是方便别人与你协同开发,创建一个分支其实就是相当于把你的项目代码也拷贝了一份,那么他就可以对代码进行修改,当他修改好之后他可以上传到分支里面,当你们都确定没问题了,那么就可以合并到主支里面。第二个就是相当于搞几个备份,如果比本地没有办法复原了如果还没有上传远程代码仓库那么你可以把远程仓库的代码下载回来复原,但是如果你的远程的代码仓库也那啥了怎么办,所以创建一个分支其实也是可以起到对远程仓库的一种保护,当你都确定没有问题了,那么合并到主支里面。
那么在这里有两种方式一个是直接使用github来创建,一个是直接使用git工具来创建。这里的话还是来说说怎么使用github直接创建吧。我们随便进入一个项目。
拉去请求
这玩意又是什么呢,其实也很简单,我们前面不是创建了很多分支么,那么问题来了,分支里面做好的修改要怎么样才能够合并到主支里面呢。那么拉去请求就帮助我们做了这么一件事情。我们点击如下图:
接下来你会看到这样的内容:
现在我们重新切换到分支去,我们现在在分支里面修改一下内容,我们直接在GitHub上面进行修改,后面我们也可以使用git工具来这么做。
那么这个时候我们查看拉取请求。
就会跳转页面,这个时候它会告诉我们哪里修改了
这个时候你可以查看拉取请求。
返回看到已经合并了
Fork
这个玩意也是一个好玩的家伙,作用就是可以白嫖人家的开源项目,你可以把这玩意搞到自己的仓库里面,然后参与这个开源项目,如果你觉得哪里可以优化,那么你就可以选择帮人加优化,然后提交,那么在提交好之后,那个项目的管理员,也就是这个项目的发起者就会收到你的请求,那么这个时候人家会审核,通过之后就会被合并,那么广大朋友就可以看到你的共贡献。
之后你就可以正常修改,提交之类的。
之后就是交给管理员。
然后等待就好了。
Git工具
说了那么多GitHub的基本玩法,那么再来说说git怎么玩。
安装
还是两种方式,这里直接(当然这里的话我使用的是Linux环境,windwos的话直接下载git工具就好了)
sudo apt insatll git
Git 大致控制流程
接下来分几个流程说明怎么具体使用
(暂存区存取的是当前的代码版本,或者说是当前版本被本地上传了暂存区的文件)
本地操作
创建本地仓库
选一个工作目录
git init 创建仓库
git status 查看目前状态
添加文件到暂存区
git add 文件
git add . 加入整个目录到暂存区
记住每一个环都是相对独立的,只有你上传了之后才会改变.
当你删除了本地的代码,而没有上传时,你的暂存区是不会改变的.
将暂存区的文件拉到本地工作目录
git checkout . (表示恢复所有文件到工作区)
git checkout 文件名
这个作用其实就是玩意你不小心删除了工作区的的东西那么可以从缓存区把东西还原回来。
也就是
如果不小心删除了本地的,代码而没有上传到暂存区,那么可以通过这种方式来恢复文件
上传本地仓库。
git commit -m '描述‘
这个时候可能会报出警告,如果你是第一次使用的话,需要你填写邮箱和姓名。这个主要是用来说明这个是
谁修改的,叫什么名字。不是你代码托管平台的账号。
git config --global user.email "your email"
git config --global user.name "your name"
版本切换
最简单的情况就是当你的暂存区的,本地代码都搞乱了,需要恢复的情况,或者最新修改的版本有BUG需要退回去未的修改版本。
版本查看
git log 这个只能查看当前切换的和该版本以前的版本,换句话说就是,假设你从第10版本切换到第五版本,
那么显示的只有1到五版本。
git reflog 这个则是可以查看所有版本,不管你怎么切换。
版本切换
git reset 2e55793(commit的哈希值前几位就可以了)
这个是切换版本,但是此时你的本地的工作目录是没有改变的。但是你的暂存区是变了的
git reset --hard 2e55793
这样就一起本地工作目录也切换了
此外删掉某个版本执行这个:
git rebase -i 哈希值
//然后会打开vim你需要删除版本注释
//仅仅只是撤销已提交的版本库,不会修改暂存区和工作区
git reset --soft 版本库ID
//仅仅只是撤销已提交的版本库和暂存区,不会修改工作区
git reset --mixed 版本库ID
//彻底将工作区、暂存区和版本库记录恢复到指定的版本库
git reset --hard 版本库ID
这玩意的作用其实就是如果你不小心搞错东西了并且还把代码提交到本地仓库了,那么就可以回退本地仓库的版本,回退到正常版本。
在Github上的操作
我这里以我在github上的一个开源项目为例子。
其他的代码托管平台也是可以的,例如gitee ,coding等
下载代码仓库到本地
git clone 网址
例如:
git clone https://github.com/Huterox/FixPicTools.git
这个拉取下载是不用帐号密码的,只有在上传的时候需要你的github账户,密码(或者gitee的)
更新远程仓库
git push 上传本地仓库
git push origin 分支()
git pull 下载远程仓库(这个主要是下载远程仓库的版本在本地更新)
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin next:master
git pull origin next
如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。上面命令可以简写为:
这一步的操作是需要提供用户名和密码认证的
注意事项
1.上传到远程仓库显示的默认版本是你当前的最新版本的代码
2.建议上传到分支去,除非你确定没有问题
3.当本地的仓库版本与远程的版本对不到时,或者项目结构发生改变时,可能会造成无法上传的情况,那么这个时候两个方案。
1.强制上传(不建议)git push -u origin 仓库
2.更新版本 先git pull 这个时候是不会把你的本地覆盖的,
原因是如果做了修改并且commit 了的话那么原来的远程仓库没有这样版本是不会直接覆盖的,
当然如果你要强制覆盖的话那么:git push --force
回到刚刚的话题,那么这个时候,你只需要在此提交add 和 commit就好了然后push
4 .Github不再支持git使用密码上传,而是需要使用密钥,到时候输入密码就把密钥输入过去。
下面是获取密钥。
以上是关于一篇搞定Git基本使用的主要内容,如果未能解决你的问题,请参考以下文章