Git神器使用相关
感谢
感谢作者的网站,本文所有的知识可以在上述网站了解到,讲的非常详细,感谢。(https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)
本文由上述网站总结复制而来,版权归原网站所有。
前言
什么是Git?什么是Github?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Github是全球最大同性交友平台,咳咳,说错了,是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。
什么是版本控制系统?
有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以。写代码什么的都需要版本迭代。
Git有啥子用?
当然是版本控制。比如写个code,结果想要回退前几天的版本,或者误删了等等,都可以恢复,时间追溯神器。
Git机理?
你在工作目录写代码,想要推送到本地库则需要先添加文件到暂存区,再commit到本地库,然后push到远程(不怕丢,当然更重要的是团队协作)。
对于个人而言,只使用本地功能完全OK,当然你可以申请github账号推送自己的仓库上去。
流程:(还是申请个github吧)
个人总结:
基础命令答疑:
git init :初始化仓库。
git status :状态命令,我在哪,我是谁,我在干什么,此命令可解决你的疑惑。
git add xx :xx是文件名,你可以巴啦巴拉敲一堆你要推送的文件名,或者简单点,git add . (这后边是个点),添加所有你更改未add的文件,一步到位。
git commit -m "xxxxxxx" :提交你的暂存区更改到分支中去。xxx是你想说的话,备忘录。
git rm xx :删除文件,不止是本地,add 和commit 后仓库中的同样的文件也会被删除。
git rm --cached xx :删除暂存区的文件。
git log --oneline:显示提交日志,各种你做了更改的版本号可在此查看,oneline表示单行显示,比较精简。
git reflog :记录你所有运行过的指令。
git diff xx :比较工作区的文件与版本库中文件的不同。
版本回退三大金刚:
git reset --hard xxx :版本回滚,xxx为SHA1 版本号。要有hard。xxx前的commit会被保留。
git checkout xxx :不会改变master,只是改变工作区。
git revert xxx :撤销xxx那个对应的commit,但会提交一个新的commit。新commit之前的commit都会被保留。
git branch xx :新建分支xx。
git checkout xx : 切换分支到xx。一步到位新建并切换到xx :git checkout -b xx。
git branch -d xx :删除分支xx(合并完的)。
git branch -D xx :强制删除分支xx(尽管还没有被合并)。
git branch -a :显示当前所有存在的分支。
git merge xx :首先要切换到master分支,再运行此命令。会把xx分支合并到master分支。可能会合并冲突啦,冲突自己更改冲突再重新合并即可。
git remote add origin xxxx :添加远程仓库xxxx(项目地址)。
git remote -v :查看远程与本地的关联。
git push -u origin master :第一次推送master到远程仓库。以后推送就不用加u啦。u是关联远程master与本地master。
git pull origin master :拉取远程master到本地master。(更新的作用)
git clone xxxx :把远程的项目克隆到本地并自动关联好。
对于本地自己捣鼓:
1.新建一个文件夹,在文件夹下运行 git init;初始化仓库。
此时不要企图git branch xx (新建分支),因为还是空的,啥也没有。
2.新建文件,git add xx(或者 git add . 添加所有更改但是未被添加到暂存区的内容)。
git rm --cached xx (此命令会把暂存区的文件删除掉,如果你add 后不想commit了,这就是此命令大显神威的时候啦)
3.添加文件到暂存区后,git commit -m "注释(你想说的话)" :此命令会把暂存区的文件提交到master。
(本来本地分支是空的,但你commit后会默认生成master分支了,文件被添加到master分支)。
其他的就随便捣鼓啦。
对于远程使用:
1.由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
ssh-keygen -t rsa -C "kingstacker_work@163.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
在用户主目录下而不是工作目录,发现ssh文件夹:
2.添加远程库:
关联本地库,在工作目录下:
git remote add origin git@github.com:kingstacker/test.git
origin表示远程的库,test表示repo-name,远程和本地的尽量一致,避免自己懵逼。
查看一下,关联ok:
推送本地库master到远程库中去:
git push -u origin master
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。
由于远程库是空的,我们第一次推送master
分支时,加上了-u
参数,Git不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
上github看一眼,跟本地 的是一致的。
SSH警告
当你第一次使用Git的clone
或者push
命令连接GitHub时,会得到一个警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes
回车即可。
Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
这个警告只会出现一次,后面的操作就不会有任何警告了。
划重点:
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
基本命令可以在开头网站中或者git官网看。
以上。
Git神器使用相关的更多相关文章
- Git神器sourceTreesetup,让你的git效率迅速提升
image.png 小编之前在简书和公众号发不过idea如何git clone,git add,创建分支,创建码云的操作idea和Webstorm上使用git和github,码云最近又找到一款git神 ...
- git submodule git 子模块管理相关操作
Git 子模块操作相关的一些命令备忘: # 当使用git clone下来的工程中带有submodule时,初始的时候 submodule的内容并不会自动下载下来的,需执行如下命令: git submo ...
- Git配置信息相关命令
查看git所有配置项 $ git config -l or $ git config --list 全局配置用户名邮箱 $ git config --global user.name "yo ...
- Git打Tag相关操作
一.打标签 git tag -a 0.1.3 -m “Release version 0.1.3″ 详解: git tag 是命令 -a 0.1.3是增加 名为0.1.3的标签 -m 后面跟着的是标签 ...
- Git和GitHub相关
组员从GitHub上下载项目并上传项目的步骤如下 .组员接收到组长发的项目地址,组员需要从GitHub上把项目克隆下来,首先组员 需要在本地的一个文件夹里打开git,然后运行如下代码:git clon ...
- Git - Git版本库相关操作
创建Git版本库 如下命令实现在“E:\GitCode\01_TestGit”路径下,01_TestGit项目的Git版本库. $ cd E: #将当前目录转到E盘下 $ cd GitCode ...
- git tag — 标签相关操作
标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ Git tag # 在控制台打印出当前仓库的所有标签$ git tag -l 'v0.1.*' # 搜索符合模式的标签 打标签 gi ...
- [git]撤销的相关命令:reset、revert、checkout
基本概念 工作区 暂存区 本地版本仓库 远程版本仓库 如果不清晰上面的四个概念,请查看廖老师的git教程 这里我多说几句:最开始我使用git的时候,我并不明白我为什么写完代码要用git的一些列指令把我 ...
- git的一些相关知识
1.配置多个git远程仓库的ssh-Key切换(转自) 目前的git仓库如github都是通过使用SSH与客户端连接,如果只是固定使用单个git仓库的单个用户 (first),生成生成密钥对后,将公钥 ...
随机推荐
- myeclipse使用hibernate5框架load延迟装载对象报错_$$_javassist_0 cannot be cast to javassist.util.proxy.Proxy
jar包问题,将hibernate-core-5.0.12.Final.jar删除,换为hibernate-core-4.2.3.final.jar搞定.注意项目运行过后可能删不掉jar包,只需关闭m ...
- jmeter 启动jmeter-server.bat远程调用报错: java.io.FileNotFoundException: rmi_keystore.jks (系统找不到指定的文件。)
1.找到apache-jmeter-5.0\bin\jmeter.properties 2.修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disa ...
- [转帖]CS、IP和PC寄存器
https://www.cnblogs.com/zhuge2018/p/8466288.html 之前的理解不对 当然了 现在的理解也不太对.. CS.IP和PC寄存器 CS寄存器和IP寄存器: 首先 ...
- [转帖]你云我云•兄弟夜谈会 第三季 企业IT架构
你云我云•兄弟夜谈会 第三季 企业IT架构 https://www.cnblogs.com/sammyliu/p/10425252.html 你云我云•兄弟夜谈会 第三季 企业IT架构 你云我云•兄弟 ...
- Oracle行列转换case when then方法案例
select (select name from t_area where id=areaid) 区域, end) 一月, end) 二月, end) 三月, end) 四月, end) 五月, en ...
- Git本地仓库push至GitHub远程仓库每次输入账户密码问题解决(亲测可行)
在使用git push命令将本地仓库内容推送至GitHub远程仓库的每一次git都要让我们输入GitHub的用户名和密码.这着实让我们心烦.我们会有疑问,我明明设置了公钥呀!怎么还需要输入账户和密码? ...
- w3c JS测试
到W3c的js测试里面溜达了一圈: 做错了几道题: 外部脚本必须包含<script>标签吗? 否!! 这里的外部脚本是指xx.js这个文件,在文件中写js代码是不需要包含script标签的 ...
- mapreduce join
MapReduce Join 对两份数据data1和data2进行关键词连接是一个很通用的问题,如果数据量比较小,可以在内存中完成连接. 如果数据量比较大,在内存进行连接操会发生OOM.mapredu ...
- Shell 编程和Python编程的那些不同之处(一)
循环 shell中for循环的表现形式: 1.数字段形式 for i in {1..10};do echo $i;done 还支持按规定的步数进行跳跃的方式实现列表for循环,例如计算1-100内所 ...
- vue-cli: 渲染过程理解(vue create demo01方式创建)
1.根目录配置 vue.config.js, 设置入口文件: index.js module.exports = { pages:{ index: { entry: 'src/pages/home/i ...