## 工作打怪之"**GIT**"大魔王!!!
起因:
从昨天到现在一直饱受git的摧残,从提交到后边的误操合并,都让我濒临崩溃,因为这些简单的问题去请教老大,老大沉默的样子更是让我无地自容,所以为了自己仅有的一点自尊,决定从头开始学GIT,考虑到在新手村徘徊的队友们可能还在整日做"帮隔壁李婶找母鸡"之类的任务,还没经历过"大魔王GIT"的毒打,于是写下这篇《GIT求生指南》。
正文:
话不多说,即刻开搞!
1,什么是GIT?
百度百科:
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
个人理解:
打怪存档,小霸王十五元一个的大板"第二次机器人大战"玩过没?,打最后一关 休. 的时候你不存档能行吗,果断把你送回第一关。GIT就是这个用来 保存你存档的东东,这样你即便是被 休 干趴了,亦或者你把休干趴了,也就是翻盘了,你都不需要从第一关重新开始,换个存档(版本)就可以了,当然这个只是GIT优点的一部分 ,还有分支也是不得不说的,这个与高三做数学试卷有点类似,一张试卷发下来,大家分工合作,我做选择,同桌填空,前桌大题,最后互抄,总之大家出力,都有的玩,GIT也提供了这种模式,多人同时开发,最后分支一合并就 OK了!
这是IDEA的视图 大概就是这么个意思:
2,使用GIT
因为是初学,所以就不往底层原理方便在研究了,就直接面向工作,步入使用了。
安装GIT:
官网卸载安装包: 点一下玩一年!
OK!个别同学可能没发现上边这个是超链接,这样的同学就自行退出群聊就可以了!
诺,这个就是GIT的官网首页了,开始下载!
先这样!
然后这样!
然后就可以了!
--------------100%下载完成啦!
找到安装包:
双击开始安装:
选择配置:
------------叮! 安装完成,检验一下:
有了!然后点击 随便一个! 个人建议不要用第三个小乌龟哦,会让一学就会,一搞就废,先学命令,第二种是小黑板风格的,第一种是linux的,用起来顺手,果断第一种!
打开就是这样的界面了,虽然巨丑但是没得办法!
简单介绍 :
(1):主机名
(2):地址
(3):版本
(4):路径
嗯!言简意赅,不愧是我!
GIT第一步,公钥纸尿裤!
你要跟我这样做:
先这样:
git config --global user.name "你的名字"
git config --global user.email "------------你的邮箱地址----@qq.com"
用户名看自己喜欢起,一般都是起些容易记的,亦或者某个简称,邮箱选自己邮箱即可。(值得一提的是,我第一次生成的时候并没有执行上两句命令,而是直接在配置那里写邮箱和用户名,生成的公钥匙直接显示我的邮箱,后来拿去用不了;后来我有一步一步写的时候生成的公钥其实最后显示的并不是邮箱,而是本机名,当时我一直以为显示邮箱是对的,后面也是别人指点才得知。当然,具体什么原因我不明白,菜鸟一枚,欢迎补充!)
然后这样:
奈斯!我的路径是这样滴,一般情况下都是在你的用户下边的。shh文件里。当然如果小伙子你自己指定了,那我也不知道去哪找了,小白+1!
然后让我们打开后缀是.pud的文件 记事本打开就可以了 。
然后就会看到一大串字符 干他! 先C直接带走!
到了这里的话 如果你是第一天工作的话就把这发给你老大就可以了,他会给你发git链接
你直接下拉项目
滴滴滴 就像这种
https://github.com/--------滴滴滴马赛克!
OK具体下拉的等下再扯,先说说GIT的基本命令
what!说了半天居然忘了说 公钥是个锤子! 补一下 :
首先 当然是官方介绍了:
公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。通过这种算法得到的密钥对能保证在世界范围内是独一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。
然后 是个人理解:
公钥 公钥 顾名思义就是公共的钥匙啦!
GIT 是一个存放很多宝贝的宝箱 或者说是仓库 既然是一个存放宝贝的仓库 那谁都能来白嫖肯定是不行滴
于是就需要 公钥这个弟弟用来加密 对!没错 这个钥匙是用来加锁的。
既然都说公钥那就不得不说私钥了
私钥的话就是用来解密的 就像阿里巴巴和四十大盗 山洞(GIT)里存放了宝贝,山洞前有石门(公钥)挡着
想进入山洞里拿宝贝,就只能大喊“芝麻开门”(私钥)才可以!
GIT基础操作
MMP前戏那么多 搞得都没得激情了 ,进入正题 git的基础操作命令!
1.1 初始化命令:
git init //初始化
git config --global --list //查看配置列表
太多了,就不一个个试了,先CV过来,一个一个补吧!
用的挺多的小命令
touch a // 创建一个a文件
echo 1234 >> a // 把1234这个内容放入a文件
cat a // 打开a文件 读取出a文件中的内容
mkdir test // 创建test文件夹
rm 文件名 // 删除文件
pwd // 打印当前工作路径
常用基础命令,基本上就这几个日常够用了!
git init // 初始化 在工作路径上创建主分支
git clone 地址 // 克隆远程仓库
git clone -b 分支名 地址 // 克隆分支的代码到本地
git status // 查看状态
git add 文件名 // 将某个文件存入暂存区
git add b c //把b和c存入暂存区
git add . // 将所有文件提交到暂存区
git add -p 文件名 // 一个文件分多次提交
git stash -u -k // 提交部分文件内容 到仓库 例如本地有3个文件 a b c 只想提交a b到远程仓库 git add a b 然后 git stash -u -k 再然后git commit -m "备注信息" 然后再push push之后 git stash pop 把之前放入堆栈的c拿出来 继续下一波操作
git commit -m "提交的备注信息" // 提交到仓库
若已经有若干文件放入仓库,再次提交可以不用git add和git commit -m "备注信息" 这2步, 直接用
git commit -am "备注信息" // 将内容放至仓库 也可用git commit -a -m "备注信息"
* git commit中的备注信息尽量完善 养成良好提交习惯 例如 git commit -m "变更(范围):变更的内容"
查看信息的命令 小白不会用 大佬不爱用系列!
git log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
// 获取git log里的树形详细信息 包括hasg 日期 提交信息 提交人等
git log --oneline //拉出所有提交信息 q是退出
git log -5 // 查看前5次的提交记录
git log --oneline -5 // 打印出的日志里面只有哈希值和修改的内容备注
git log 文件名 // 查看该文件的提交
git log --grep // 想过滤看到的内容 过滤日志
git log -n // 查看近期提交的n条信息内容
git log -p // 查看详细提交记录
接下来这几个比较重要的 远程操作!
git remote add origin https://github.com/whjamz/studys.git //链接远程仓库
git pull origin master //把远程仓库 master分支下的文件pull到本地
【如报错,远程已存在文件和本地仓库没有关联,导致下载失败
则需要强制pull git pull origin master --allow unrelated-histories】
git push -u origin master //将本地代码上传到远程 master分支上
git push origin 本地分支名:远程分支名称[不存在,先创建,后上传] //将本地xx分支的代码上传到远程 xx分支上
滴滴滴!还有是三个!
git pull //从远程仓库获取最新版本合并到本地
git push //把本地仓库的内容提交推送给远程仓库
git push 远程仓库别名 :远程仓库分支名 //删除指定的远程的分支
搞到这里发现命令真是太多了 像我这种小弟弟跟本沉不下心来全部总结 于是本着收藏了就是自己的
是自己的就都会了的精神 我进行了如下操作!
嘿嘿嘿! 这不是懒 这是像前辈学习!
感谢一下几篇博客的无私贡献!我只引来交流学习,不作任何商业用途!!
https://www.jianshu.com/p/93318220cdce
https://segmentfault.com/a/1190000015482463?utm_source=tag-newest
http://www.sohu.com/a/251952125_663371
OK! 这三个大佬的博客绝对精品 简单明了!
嗯嗯,自己还是要干点啥的,就搞个常用的速查基础表吧,利人利己!
还有速查表格!
git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git commit -am "init" 提交并且加注释
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上
git remote show origin 显示远程库origin里的资源
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联
git checkout --track origin/dev 切换到远程dev分支
git branch -D master develop 删除本地库develop
git checkout -b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径) 从git中删除指定文件
git clone git://github.com/schacon/grit.git 从服务器上将代码给拉下来
git config --list 看所有用户
git ls-files 看已经被提交的
git rm [file name] 删除一个文件
git commit -a 提交当前repos的所有的改变
git add [file name] 添加一个文件到git index
git commit -v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -a是代表add,把所有的change加到git index里然后再commit
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff --cached 或 $ git diff --staged 查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
---------------------------------------------------------
git remote add origin git@github.com:username/Hello-World.git
git push origin master 将本地项目给提交到服务器中
-----------------------------------------------------------
git pull 本地与服务器端同步
-----------------------------------------------------------------
git push (远程仓库名) (分支名) 将本地分支推送到服务器上去。
git push origin serverfix:awesomebranch
------------------------------------------------------------------
git fetch 相当于是从远程获取最新版本到本地,不会自动merge
git commit -a -m "log_message" (-a是提交所有改动,-m是加入log信息) 本地修改同步至服务器端 :
git branch branch_0.1 master 从主分支master创建branch_0.1分支
git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
git checkout branch_1.0/master 切换到branch_1.0/master分支
du -hs
git branch 删除远程branch
git push origin :branch_remote_name
git branch -r -d branch_remote_name
-----------------------------------------------------------
初始化版本库,并提交到远程服务器端
mkdir WebApp
cd WebApp
git init 本地初始化
touch README
git add README 添加文件
git commit -m 'first commit'
git remote add origin git@github.com:daixu/WebApp.git
增加一个远程服务器端
表格引用地址
https://www.cnblogs.com/kenshinobiy/p/4543976.html
侵权立删!!
3.IDEA AND GIT
其实对于我们这些小白来说 git的命令只需要使用简单的几个就可以了 最主要的是要能完成工作 :
IDEA 目前被大多数人所使用的 哦 具体用的人多不多我是不晓得 反正我用!
喏!俺的还是有效期至2089年的! 破解教程 参考我的另外一篇博客
https://blog.youkuaiyun.com/DoChengAoHan/article/details/102660977
使用IDEA 下拉上传代码 :
下拉代码这种也忒简单了 就不多说了 哦!有一点需要注意的是 分支问题
千万不要拉完代码就开始搞 要先把代码搞到自己的本地分支!
IDEA 也可以直接创建和切换分支!
带标签的就是当前所在的分支了
新建分支 点击 new branch
输入分支名称!
OK ----------完成!
详细讲一下提交吧 这个对于小白的我来说 踩过超多的坑!
血泪史写出来估计都能出书了 !!!
--------------------------------------------------------瞎哔哔分割线----------------------------------------
第一步 :
上传代码到本地仓库 !
第二步
选择要上传的代码!
上传时可能会有错误 IDEA会提示你检查!
检查 无误后 !可以选择直接提交!
点击 push 将代码推送至远程仓库!
可以看到 已经上传完毕了!
-----------------------------瞎逼逼------------------------------------------------------
基本不想写了 东西太多了 以后再补吧!