Git使用(超详细)
github是一个远程仓库,代码托管平台,开源免费,我们可以把我们的代码工作空间存储到github上,这样就不怕丢失了,对于初学者,github的这项功能已经值得让程序员学习,而且他的功能远不只此,还包括版本控制,以及团队共同开发等,都是对程序员编程有很大帮助的。而git则是帮助我们远程连接操作仓库的客户端。
当初我之所以下定决心学好git命令, 是因为我当时敲了好久的一个飞机大战程序掉了,掉了,对于刚入编程的我的打击是沉重的,所以。。。。。好了让我们开始学习吧!
创建仓库
虽然git的原配是github,但是毕竟github是在国外,有墙的存在限制了网速,所以可以选择使用国内的码云,这个和那个github几乎是一样的,也是开源的,估计制作码云的初衷就是因为github是在国外网速不行。
这里我就github 和码云怎么创建仓库的都将一遍吧
( 我电脑的系统是manjaro的,和windows有点不太一样,但是命令什么的是应该没有区别的)
github创建仓库(github现在电脑连接不上。。。不过和码云的原理一样,emm~不能翻墙)
码云创建仓库
那里有个选择Private 或Public的,意思就是是不是开源,对于我们初学者来说都一样的,如果想分享我们的源码就选择public(一般也不会有人看。。)
然后直接点击new就创建好了
创建好了现在是一个空白仓库。并且他给了你几个命令提示
git config --global user.name "G521"//名字
git config --global user.email "2997385765@qq.com"//邮箱
这些有什么用呢,其实这相当与你的身份,平时上传提交都会显示,如果几个人共同开发一个项目,每个人都会上传提交,然后每次提交都会附加上面的信息,然后就能知道是谁提交了什么内容。(简单来说就是登记一下身份,在github上操作就会保留你的登记信息)
mkdir Test0//创建你的工作目录
cd Test0 //进入你的工作目录
git init //初始化 把这个文件夹变成git专属文件夹 注意,git的命令只能在git专属文件夹中才能使用
//然后你的这个目录中就会多一个.git 文件夹(本地仓库),隐藏属性,一般看不到的。
touch README.md //创建一个新文件。(开始 工作敲代码了)
/**
*敲完代码,工作到一半或者完工,接下来就是保存到仓库
*/
git add README.md //先把要保存的文件添加到暂存区 (使用 . 代表全部文件 "git add .")
git commit -m "first commit" //提交到本地仓库 (应该是提交到这个文件夹的.git文件夹中了,注意这个.git文件夹尽量不要动)
/**以上内容都是不需要联网的,都在本地操作,接下来要上传到远程仓库了
*本地仓库就是保存在了本地的.git文件中,但是这样还不够安全,上传到
*远程仓库也就是我们刚才在码云上创建的那个仓库中,这样不管我们的电脑有啥问题都不用担心文件会找不到了
*/
git remote add origin https://gitee.com/zyx2997385765/Test0.git //添加远程仓库 (使用https方式,等会再细说)
git push -u origin master //将我们本地仓库上传到远程仓库。(会提示输入用户名和密码 )
这样我们就把文件上传到远程仓库了
刚一接触可能觉得很麻烦。但是这只是刚开始的时候,以后我们敲代码什么的都在那个Test0中,然后每次想要保存只需要git add . ---- git commit -m’提交信息’ ------git push 就行了
这只是普通使用,接下来我们个部分细说一下
Git使用详解
配置ssh
创建仓库就不用说了。
先说一下连接远程仓库的两种方法吧。我们上面使用的是https方式,每次上传都需要输入密码,可以选择ssh方式。ssh方式配置对于新手可能看着比较麻烦,但是只要用的多了还是很好配置的。
ssh和https使用的地址是不同的。接下来我们实际操作一下
首先要在本地生成ssh密钥。直接在git 窗口操作就行 输入命令:
ssh-keygen -t rsa
然后一路回车
找到.ssh文件夹中的id_rsa.pub 打开,复制内容
然后就可以使用仓库的ssh地址连接了。我们试一下
进入工作空间,(或者新创建一个文件夹)
进入之后
git init
git config --global user.name "你的匿名"
git config --global user.email "你的邮箱"
git remote add origin **ssh地址**
如果提示fatal: remote origin already exists.
说明已经连接到了远程仓库。
可以使用 git remote -v 查看
如果想要更换远程仓库可以使用git remote remove origin 删除
(那个origin 就是我们添加时候“git remote add origin ssh地址” 的‘origin’ 都是给远程仓库起的命令而已 )
也可以git remote add elseOrigin ssh地址
连接好远程仓库后
可以新建一个README.md 文件
这里说一下这个文件比较特殊可以被github/码云直接识别并展示
可以介绍一下你这个仓库的内容什么的,方便别人了解。
接下来就是保存了
git add
***git add*** 文件名
如果添加后反悔了不想把某个文件add 进去。
使用命令git rm --cached 文件名 可以删除刚add进去的文件
另外git add 是把文件添加到了暂存区
使用git status 可以查看当前工作区和暂存区的不同
例如git add . 后
新建一个文件test.txt
显示test.txt 是红色,表示没有add
**git add test.txt** 添加
**git rm --cached test.txt** 移除
git commit
**git commit -m'提交信息'**
这个提交信息还是有点重要的,特别是如果以后想要撤销回滚什么的就比较重要。
**git commit -am’提交信息‘** 如果没有创建新文件,只在源文件上修改什么的使用这个就可以省去**git add**
如果感觉刚才那个提交信息不对,想修改一下
方法一:
git commit --amend
(ctrl + x 返回)
方法二:
git commit -m“新的提交信息”
git rebase -i HEAD~n //把前n次的提交历史压缩为一个
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020022512033473.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzI5MjkzNA==,size_16,color_FFFFFF,t_70
git push
(ctrl + x 返回)
然后git push -u origin master
这是第一次提交 -u origin master 必须加上
之后提交就会默认为上面指定的origin仓库中的master分支
**origin**:是指仓库名。我们上面刚说过的,我们起的名字
**master**:分支名(先面细说)
如果git push 失败,可能是本地仓库和远程仓库不同步(本地仓库误删了什么东西导致的)
git pull 一下应该能解决问题,(把远程仓库拉下来同步)
分支
比如说我们最初一个源码是一个主干。
现在我们想增加功能,相当与给大树的主干增加一个分支
使用分支就可以每个人负责一个分支并且相互不影响。最后与主干合并,完成整个项目的开发
**git branch** :查看现有分支
加上参数 **-avv** 可以显示删除的分支,以及合并的分支(全部分支)
**git branch name** 创建新分支
**git checkout name** 切换分支 加上参数**-b** 先创建后切换。
我们现在master默认分支创建README.md文件
写入内容
git add READ.md
git commit -m''m"
创建并且换新分支fix-A
在READ.me文件中追加内容
-fix-A-
git add READ.md
git commit -m'fix-A'
切换回master
**git branch -** (-代表上一次的分支)
查看README.md
然后合并分支
git merge --no-ff fix-A 然后输入合并信息
合并后查看README.md
分支是一个很重要的内容,还需要多用用才能熟练
回滚
比如我们想给程序优化一下,结果优化半路发现不行,处理不下去了,想回到之前的内容那就需要回滚了
先git reflog 可以查看一下历史记录
前面那些字母和数字是哈希码,等会会用,后面就是一些提示信息,都是我们写的或者自动生成的,所以以后写提交信息尽量写清楚 ,不然回滚的时候就比较乱,比如我们想回滚到没有合并之前,
git reflog 显示的内容都是操作之后才有的,所以需要找前一个,比如“merge -b…" 是刚刚合并后,我们要合并前的,就找下面的那个ae6a24e
git reset --hard ae6a24e
然后提示 HEAD is now at ae6a24e m
现在我们就回滚到了合并之前。
git log 可以查看日志,和git reflog 有点类似,不过git reflog 显示的是所有历史记录
git log 是显示以当前为终点的记录,(比如我们的工作进展到4 ,然后回滚 到2 ,那么git relog 显示的内容到4 ,而git log 显示的内容只到2)
git log --graph 以图形化显示更直观
到这里,git 个人使用应该就差不多了,还有更多知识就需要自己努力去学了,大家努力啊git 真的很重要的,不要到时候代码掉了就晚了。。。
我的笔记:
其实如果英语好的话可以使用自带的-h提示
git -h 或者单独查询某个命令 git remote -h
单词也不是特别难,正好练练英语 ~
{
最后一个命令
git clone [https地址]
把别人的仓库克隆下来
}
Git入门与实践pdf(码云地址)
Git思维导图下载
有问题请留言哦——