感谢

感谢作者的网站,本文所有的知识可以在上述网站了解到,讲的非常详细,感谢。(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_rsaid_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神器使用相关的更多相关文章

  1. Git神器sourceTreesetup,让你的git效率迅速提升

    image.png 小编之前在简书和公众号发不过idea如何git clone,git add,创建分支,创建码云的操作idea和Webstorm上使用git和github,码云最近又找到一款git神 ...

  2. git submodule git 子模块管理相关操作

    Git 子模块操作相关的一些命令备忘: # 当使用git clone下来的工程中带有submodule时,初始的时候 submodule的内容并不会自动下载下来的,需执行如下命令: git submo ...

  3. Git配置信息相关命令

    查看git所有配置项 $ git config -l or $ git config --list 全局配置用户名邮箱 $ git config --global user.name "yo ...

  4. Git打Tag相关操作

    一.打标签 git tag -a 0.1.3 -m “Release version 0.1.3″ 详解: git tag 是命令 -a 0.1.3是增加 名为0.1.3的标签 -m 后面跟着的是标签 ...

  5. Git和GitHub相关

    组员从GitHub上下载项目并上传项目的步骤如下 .组员接收到组长发的项目地址,组员需要从GitHub上把项目克隆下来,首先组员 需要在本地的一个文件夹里打开git,然后运行如下代码:git clon ...

  6. Git - Git版本库相关操作

    创建Git版本库 如下命令实现在“E:\GitCode\01_TestGit”路径下,01_TestGit项目的Git版本库. $ cd E: #将当前目录转到E盘下 $ cd GitCode    ...

  7. git tag — 标签相关操作

    标签可以针对某一时间点的版本做标记,常用于版本发布. 列出标签 $ Git tag # 在控制台打印出当前仓库的所有标签$ git tag -l 'v0.1.*' # 搜索符合模式的标签 打标签 gi ...

  8. [git]撤销的相关命令:reset、revert、checkout

    基本概念 工作区 暂存区 本地版本仓库 远程版本仓库 如果不清晰上面的四个概念,请查看廖老师的git教程 这里我多说几句:最开始我使用git的时候,我并不明白我为什么写完代码要用git的一些列指令把我 ...

  9. git的一些相关知识

    1.配置多个git远程仓库的ssh-Key切换(转自) 目前的git仓库如github都是通过使用SSH与客户端连接,如果只是固定使用单个git仓库的单个用户 (first),生成生成密钥对后,将公钥 ...

随机推荐

  1. .NET Core 中正确使用 HttpClient 的姿势

    为了更方便在服务端调用 HTTP 请求,微软在 .NET Framework 4.x 的时候引入了 HttpClient.但 HttpClient 有很多严重问题,一直饱受诟病,比如 InfoQ 的这 ...

  2. 通过 Systemd Journal 收集日志

    随着 systemd 成了主流的 init 系统,systemd 的功能也在不断的增加,比如对系统日志的管理.Systemd 设计的日志系统好处多多,这里笔者就不再赘述了,本文笔者主要介绍 syste ...

  3. ssm知识点总结

    项目名称:教育网—在线调查系统 项目总体流程图: 设计调查:调查-->包裹--->问题(增删改查) 1.调整包裹顺序 2.移动复制包裹 3.深度删除 创建调查流程分析: 主要生成surve ...

  4. 使用junit测试

    package creeper; import java.util.Scanner; public class size { private static int intercePosition = ...

  5. 软件工程(FZU2015) 赛季得分榜,第七回合

    SE_FZU目录:1 2 3 4 5 6 7 8 9 10 11 12 13 积分规则 积分制: 作业为10分制,练习为3分制:alpha30分: 团队项目分=团队得分+个人贡献分 个人贡献分: 个人 ...

  6. Booth乘法

    先看一个例子,结合疑问看算法. 1.已知X=+0.0011 Y=-0.1011 求[XY]补 解:[x]补 =0.0011 , [-x]补 =1.1101,[y]补 =1.0101 部分积      ...

  7. js 翻牌活动效果

    直接上代码 html: <div class="index_main"> <ul class="index_card"> <li ...

  8. Jenkins系统上的时间不正确问题

    很简单,点击系统管理,选择执行脚本命令: 打开 [系统管理]->[脚本命令行]运行下面的命令 System.setProperty('org.apache.commons.jelly.tags. ...

  9. JS 类型检测

    typeof 适合函数对象和基本类型的判断 typeof 100instanceof 适合判断对象类型 obj instanceof Object 基于原型链判断操作符,若做操作符不是对象,则会直接返 ...

  10. linux安装php7.2.7

    1.下载php 官网下载:#wget http://cn2.php.net/get/php-7.2.7.tar.gz/from/a/mirror.(ps:应该是这么下载的,但是我下载的都是一个mirr ...