安装Git

 sudo apt-get install git

提交代码信息配置

$ git config --global user.name "runoob"
$ git config --global user.email test@runoob.com

查看信息配置

git config --list --global

为git添加远程仓库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下:

git remote add [shortname] [url]

例如

git remote add origin git@github.com:DreamCats/git-testone.git

本例以 Github 为例作为远程仓库,如果你没有 Github 可以在官网 https://github.com/注册。
由于你的本地 Git 仓库和 GitHub 仓库之间的传输是通过SSH加密的,所以我们需要配置验证信息:
使用以下命令生成 SSH Key:

$ ssh-keygen -t rsa -C "youremail@example.com"

后面的 your_email@youremail.com 改为你在 Github 上注册的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。

成功的话会在 ~/ 下生成 .ssh 文件夹,进去,打开公钥 id_rsa.pub,复制里面的 key。

$ ssh-keygen -t rsa -C "429240967@qq.com"

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tianqixin/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): # 直接回车
Enter same passphrase again: # 直接回车
Your identification has been saved in /Users/tianqixin/.ssh/id_rsa.
Your public key has been saved in /Users/tianqixin/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:MDKVidPTDXIQoJwoqUmI4LBAsg5XByBlrOEzkxrwARI 429240967@qq.com
The key’s randomart image is:
±–[RSA 3072]----+
|E*+.+=oo |
|%Oo+oo=o. . |
|%
.o.o. |
|OO. o o |
|+o+ S |
|. |
| |
| |
| |
±—[SHA256]-----+
回到 github 上,进入 Account => Settings(账户配置)。

左边选择 SSH and GPG keys,然后点击 New SSH key 按钮,title 设置标题,可以随便填,粘贴在你电脑上生成的 key。

添加成功后界面如下所示

为了验证是否成功,输入以下命令:

$ ssh -T git@github.com

The authenticity of host ‘github.com (52.74.223.119)’ can’t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes # 输入 yes
Warning: Permanently added ‘github.com,52.74.223.119’ (RSA) to the list of known hosts.
Hi tianqixin! You’ve successfully authenticated, but GitHub does not provide shell access. # 成功信息
以上命令说明我们已成功连上 Github。

之后登录后点击" New repository " 如下图所示:

之后在在Repository name 填入 runoob-git-test(远程仓库名) ,其他保持默认设置,点击"Create repository"按钮,就成功地创建了一个新的Git仓库:

创建成功后,显示如下信息:

以上信息告诉我们可以从这个仓库克隆出新的仓库,也可以把本地仓库的内容推送到GitHub仓库。

创建GIT仓库并推送日志

$ mkdir runoob-git-test                     # 创建测试目录
$ cd runoob-git-test/                       # 进入测试目录
$ echo "# 菜鸟教程 Git 测试" >> README.md     # 创建 README.md 文件并写入内容
$ ls                                        # 查看目录下的文件
README
$ git init                                  # 初始化
$ git add README.md                         # 添加文件
$ git commit -m "添加 README.md 文件"        # 提交并备注信息
[master (root-commit) 0205aab] 添加 README.md 文件1 file changed, 1 insertion(+)create mode 100644 README.md# 提交到 Github
$ git remote add origin git@github.com:tianqixin/runoob-git-test.git
$ git push -u origin master

结果如下

附注

git --help    //查看相关git操作指令

添加推送内容

git add -A 表示添加所有内容;
git add .  表示添加新文件和编辑过的文件不包括删除的文件;
git add -u 表示添加编辑或者删除的文件,不包括新添加的文件。git add -f /test/  表示对test目录下的文件进行添加

查看内容缓存状态

git status 命令用于显示工作目录和暂存区的状态。使用此命令能看到上次提交之后是否有对文件进行再次修改;
git status不显示已经commit到项目历史中去的信息。看项目历史的信息要使用git log。

 git status -s   简短输出修改文件有哪些
git diff 不加参数即默认比较工作区与暂存区差异

分支管理
1.创建分支命令:

git branch (branchname)

2.切换分支命令:

git checkout (branchname)

3.列出分支

git branch

内容管理

git pull 下载远程代码并合并
git push 上传远程代码并合并
git clone git://github.com/schacon/grit.git mygrit  拉取代码
git reset --hard origin/master  //把HEAD指向最新下载的版本,强制使用远端覆盖本地内容

放弃本地未commit的修改并移除没有track的文件

git checkout . && git clean -df

撤销推送内容

第一步: git log --pretty=oneline  查看当前提交的日志
第二步: git revert commitID    revert你想回退的版本
第三步: 会进入一个新的编辑界面,编写commit的信息
第四步: git log --pretty=oneline   再次查看当前提交的日志
第五步: push 代码(git push或者用AS push)
例如

撤销commit文件

git log --pretty=oneline          查看当前提交的日志。
git reset --hard 提交id           撤销指定提交ID的commit文件。
git log --pretty=oneline          查看是否撤销成功。

例如:

git提交本地内容到新分支

1.新建分支

git branch xxx (xxx填写你的分支名称)

2.查看所有分支

git branch -a

3.切换到某一分支

git checkout xxx (xxx填写要切换的分支名称)         git checkout . 则清除本地未添加到缓冲区的内容

4.添加修改代码到缓存(注意最后的"."前面有个空格)

git add .

5.添加提交代码的备注

git commit -m "xxx" (xxx为本次提交代码的备注)

6.提交代码到指定分支(提供本地分支—常用)

git push origin xxx (xxx为要提交代码的分支名称)

git撤销本地内容修改

1. 未使用 git add 缓存代码时。

可以使用 git checkout – filepathname (比如: git checkout – readme.md ,不要忘记中间的 “–” ,不写就成了检出分支了!!)。
放弃所有的文件修改可以使用 git checkout . 命令。
此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。
但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

撤消工作区编辑

撤消之前未add的所有修改

git reset --hard HEAD

2. 已经使用了 git add 缓存了代码。

可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,
放弃所有的缓存可以使用 git reset HEAD . 命令。
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。
在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

3. 已经用 git commit 提交了代码。

可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。
此命令可以用来回退到任意版本:git reset --hard commit_id 其中commit_id可以通过git log去查询。

git中文手册地址

https://git-scm.com/book/zh/v2

常见问题

问题1

问题: error: failed to push some refs to。。。
原因:别人推送了代码。

git reset --soft HEAD^
git stash
git pull
git stash pop
git push -u origin master

问题2

git提交时报错:Updates were rejected because the tip of your current branch is behind

使用强制推送

 git push -u origin master -f

问题3

error: Pulling is not possible because you have unmerged files.

  1. 将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要–hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。
git reset --hard FETCH_HEAD
  1. 接着执行下面命令,就会成功。
git pull

问题4

ssh: connect to host port 22: Connection refused

原因:
远程服务器地址错误
或者
没有设置公私秘钥

解决:
1.远程服务器地址错误

git remote rm origingit remote add origin [url]

2.如果没有设置公钥
则回到最开始设置公钥教程的地方

ssh-keygen -t rsa -C "youremail@example.com"

并打开公钥 id_rsa.pub,复制里面的 key,把内容拷贝到github,或者gitlab的设置密钥栏内。

问题5

我想把本地合并后的master push到远程master上,但是出现了master -> master (non-fast-forward)错误

解决办法:当代码提交的本地仓库,或者说只要本地仓库的代码已经是最新的时候,我们只需执行下面的指令:

这样就可以解决master -> master (non-fast-forward)的错误。

一定要记得:在执行push操作前,一定要有pull的操作,不管是那一分支都应该有pull的操作,所以,我在merge的时候,会将master pull下来,然后在执行git push --force 地址的操作

Linux git环境搭建和常用指令--推送至Github为例相关推荐

  1. Linux入门-环境搭建、基本指令以及权限讲解

    这次我给大家介绍Linux系统,究竟怎么更快上手Linux,怎么学习Linux?接下来我给大家分享一下干货. Linux入门 环境搭建 Linux指令 基本指令 ls命令 cd指令 安装软件的指令 r ...

  2. Git使用及创建本地文件推送到github仓库

    Git使用 一.安装Git 一般我们工作的电脑都是Windows系统,要使用git首先要进行安装.从软件管家或者其他平台找到git的安装包,下载后默认安装即可. 安装成功之后,可以在开始菜单里面找到g ...

  3. 嵌入式linux开发环境搭建(VMware16.0.0+Ubuntu16.04.3_X64)

    目录 一.安装VMware 1.VMware介绍 2.安装VMware16.0.0 二.安装ubuntu16.04.3 LTS 1.Ubuntu介绍 2.下载安装包iso 3.安装 四.新安装Ubun ...

  4. Python + 大数据-Hadoop生态-Linux(一)-环境搭建和Vi

    Python + 大数据-Hadoop生态-Linux(一)-环境搭建和Vi 今日课程学习目标 1.了解Linux操作系统发展介绍.安装配置 2.掌握SSH原理机制.Linux文件上传下载 3.掌握L ...

  5. 测试asp.net for Linux的环境搭建

    asp.net for Linux的环境搭建 转自:http://www.cnblogs.com/xiaodiejinghong/archive/2013/04/01/2994216.html (根据 ...

  6. php连接mysql开发环境_PHP开发环境搭建及常用的数据库操作

    PHP开发环境搭建及常用的数据库操作 常见的web服务器: httpd(Apache).nginx+PHP Tomcat:jsp+html win:IIS 客户端:IE.firefox.chrome. ...

  7. linux环境 前端开发环境搭建,Linux运维知识之linux 前端环境搭建

    本文主要向大家介绍了Linux运维知识之linux 前端环境搭建,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 1.下载node.js 2.在linux 里使用wget命令 w ...

  8. 嵌入式linux编译环境搭建,嵌入式Linux开发环境搭建

    整理下嵌入式Linux开发环境搭建过程笔记. 一.制作u-boot.bin文件: tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ...

  9. 嵌入式linux开发环境搭建——VirtualBox虚拟机网络环境解析

    嵌入式linux开发环境搭建--VirtualBox虚拟机网络环境解析 本博文转自:Pandoras Box http://blog.csdn.net/yxc135/article/details/8 ...

最新文章

  1. 《实例化需求》读书笔记
  2. hihocoder-Week243-hiho字符串
  3. mysql xa 使用_MySQL如何实现 XA 规范
  4. 存储图片到数据库中的一个异常信息
  5. Java并发笔记-未完待续待详解
  6. 190728每日一句 不经一番寒彻骨 怎得梅花扑鼻香,一个人怎样保持激情去奋斗?
  7. 考研数学 - 初数基础整理09
  8. C语言从入门到精通需要多久?你真的知道吗!
  9. 估值篇之最关键指标ROE
  10. 手动打开与关闭软键盘
  11. 上课作业(5)——#576. 饥饿的牛(hunger)
  12. 64位电脑如何安装32位系统
  13. 福特汉姆大学计算机科学专业,留学福特汉姆大学专业
  14. BOM_创建更新物料清单脚本
  15. Python中inplace参数
  16. android qq1像素页面,Android QQ空间1.2体验
  17. 计算机网络分代核心的属性,计算机网络开发专业核心能力题库-操作
  18. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理
  19. 通过Trie实现违禁词过滤
  20. 手机和电脑基于java的socket简单通信

热门文章

  1. Redis占用内存过高怎么办
  2. STM32—ADC和DMA的应用之电流检测(第二部分:电流检测电路与数据处理)
  3. png转svg格式并上传至iconfont
  4. Word 2007 XML 解压缩格式
  5. 神经元网络算法的思想,神经网络算法应用案例
  6. 利用平台系统运营店铺五大法则
  7. 61、弱电工程数据中心的网络架构及其设计思路
  8. java -ArrayList的用法实例--学生宿舍管理系统
  9. 阿里巴巴的“双11”高并发秒杀终极版教程(Java语言设计)
  10. JavaScript AMD 模块