Git和Github入门教程
一、常用命令
所有命令前都要加 git,如表中的init是指 git init。
点击命令可直接跳转至本文第一次使用的地方。
以下命令都在命令行里执行。
1.本地命令
| 行为 | 命令 | 备注 |
|---|---|---|
| 初始化 | init | 在本地的当前目录里初始化git仓库 |
| clone 地址 | 从网络上某个地址拷贝仓库(repository)到本地 | |
| 查看当前状态 | status | 查看当前仓库的状态。碰到问题不知道怎么办的时候,可以通过看它给出的提示来解决问题 |
| 查看不同 | diff | 查看当前状态和最新的commit之间不同的地方 |
| diff 版本号1 版本号2 | 查看两个指定的版本之间不同的地方。这里的版本号指的是commit的hash值 | |
| 添加文件 | add -A | 这算是相当通用的了。在commit之前要先add |
| 撤回stage的东西 | checkout -- . | 这里用小数点表示撤回所有修改,在--的前后都有空格 |
| 提交 | commit -m "提交信息" | 提交信息最好能体现更改了什么 |
| 删除未tracked | clean -xf | 删除当前目录下所有没有track过的文件。不管它是否是.gitignore文件里面指定的文件夹和文件 |
| 查看提交记录 | log | 查看当前版本及之前的commit记录 |
| reflog | HEAD的变更记录 | |
| 版本回退 | reset --hard 版本号 | 回退到指定版本号的版本,该版本之后的修改都被删除。同时也是通过这个命令回到最新版本。需要reflog配合 |
2.远程库存命令
| 行为 | 命令 | 备注 |
|---|---|---|
| 设置用户名 | config --global user.name "你的用户名" | |
| 设置邮箱 | config --global user.email "你的邮箱" | |
| 生成ssh key | ssh-keygen -t rsa -C "你的邮箱" | 这条命令前面不用加git |
| 添加远程仓库 | remote add origin 你复制的地址 | 设置origin |
| 上传并指定默认 | push -u origin master | 指定origin为默认主机,以后push默认上传到origin上 |
| 提交到远程仓库 | push | 将当前分支增加的commit提交到远程仓库 |
| 从远程仓库同步 | pull | 在本地版本低于远程仓库版本的时候,获取远程仓库的commit |
可以用一张图直观地看出以上主要的命令对仓库的影响。

二、Git for Windows软件安装
1.官网下载客户端(https://git-scm.com/download/win)
2.安装(一路点击Next就行了)
三、本地Git的使用
1.新的仓库(初始化)
1.1打开命令行(cmd)或者在想要创建repository的地方右键鼠标并点击 Git Bash Here 打开窗口。

1.2运行 git init 来初始化仓库,如下图:

2.文件的添加和提交
我在这个文件夹里面创建了一个 test.txt 的文件。里面写着 妹子别走!
这时我使用 git status 来查看有什么变化:

它告诉我有一个还未追踪的文件,并提示我可以使用 git add <file>... 把它加进去。
但是我并不打算把所有命令都介绍一遍,所以我选择使用上面概览时所提到的 git add -A 命令。

嗯,什么提示都没有。没关系,我们再次使用 git status

状态变了!说明add成功。再看看它的提示 Changes to be committed ,也就是说现在可以执行commit了。下面一行则告诉你如何将文件从stage里移出,这里不管。
执行 git commit -m "提交信息" 将文件提交到repository里。提交信息用英文的双引号括起来。
这时运行 git log 就可以看到提交的记录了

3.文件的修改
我修改文件内容。
我们用 git status 看看有什么变化:

现在我们通过git看看文件做了哪些变化,执行 git diff

它默认跟最新的一个commit进行比较。
红色(前面有减号-)表示删除,绿色(前面有加号+)表示添加。
因此,在git看来,我们是删除了原来那一行,并添加了新的两行。这在文件内容特别多的时候效果比较明显。
这个命令在以下情况可以使用:
你忘记改了什么,又想知道
别人发给你新版本,你想知道更改了什么
注:如果你用 windows 创建 txt 文件,并用自带文本编辑器来编辑文本,得到的编码是 GBK 。而 Git 读取文件时,使用 UTF-8 无 ROM 编码。因此会出现中文无法正常显示的情况。
假如我现在想撤销这些更改,执行 git checkout -- . 就行了:
4.版本回退
从刚才的 git log
开始回退,执行 git reset --hard 2df0a28(取版本号前7位就可以了)

5.清除未追踪的文件
用checkout是没办法删除掉它的,使用 git clean -xf
四、Github与Git的关联
1.到Github注册账号。
2.本地配置用户名和邮箱(如果已经设置好,跳过该步):
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
3.生成ssh key
运行 ssh-keygen -t rsa -C "你的邮箱" ,它会有三次等待你输入,直接回车即可。
将生成的ssh key复制到剪贴板,执行 clip < ~/.ssh/id_rsa.pub (或者到上图提示的路径里去打开文件并复制):

4.打开Github
1.进入Settings点击左边的 SSH and GPG keys 。

2.将ssh key粘贴到右边的Key里面。Title随便命名即可。

3.测试一下吧,执行 ssh -T git@github.com
对于 oschina 的 “码云” ,执行 ssh -T git@git.oschina.net
对于 coding 的 “码市” ,执行 ssh -T git@git.coding.net

4.创建远程仓库并与本地关联
4.1在github创建仓库
4.2将远程仓库和本地仓库关联起来

有两种方式可以关联,一种是SSH,一种是HTTPS。由于HTTPS比较慢,所以推荐使用SSH。
注意SSH的地址格式是这样开头的: git@github.com
运行 git remote add origin 你复制的地址
如果你在创建 repository 的时候,加入了 README.md 或者 LICENSE ,那么 github 会拒绝你的 push 。你需要先执行 git pull origin master。
执行 git push -u origin master 将本地仓库上传至Github的仓库并进行关联

关联已经完成!
以后想在commit后同步到Github上,只要直接执行 git push 就行啦:


Git和Github入门教程的更多相关文章
- Git 极简入门教程学习笔记
Git 极简入门教程 http://rogerdudler.github.io/git-guide/index.zh.html 测试用 https://github.com/xxx/BrnShop. ...
- Git和Github简单教程
原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但是这些教程有的命令太少不够用,有的命令太多,使得初期学习的时候需要额外花不少时间在一些当前用不到的命令上. 这篇文章 ...
- Git-it:一个学习Git和Github的教程(软件)
Git-it https://github.com/jlord/git-it 2016-08-01 在FreeCodeCamp的引导下了解到的Git-it.OSC有收录. Git-it是一个指导使用G ...
- Git和Github简单教程(收藏)
原文链接:Git和Github简单教程 目录: 零.Git是什么 一.Git的主要功能:版本控制 二.概览 三.Git for Windows软件安装 四.本地Git的使用 五.Github与Git的 ...
- git和github使用教程
看官请移步git和github简单教程, 本文是上述链接的截图,担心哪天作者不小心删除了,备一份在自己这里,仅为自己看着方便.侵权请告知
- Git和Github简单教程【转】
转自:https://www.cnblogs.com/schaepher/p/5561193.html#clone 原文链接:Git和Github简单教程 网络上关于Git和GitHub的教程不少,但 ...
- 转:Git和Github简单教程
转自:https://www.cnblogs.com/schaepher/p/5561193.html Git和Github简单教程 原文链接:Git和Github简单教程 网络上关于Git和Gi ...
- github入门教程:第一步
[git教程] 以前在网上找过一些,见 http://www.wojilu.com/Forum1/Topic/702 我自己会一边学,一边写教程,过程中有不明白的,会跟大家请教交流. ----- ...
- Git和Github入门
推文:官方手册,十分详细 推文:git和github快速入门 一.git使用 1.git安装 (1)windows 网站:https://git-scm.com/download/win下载安装即可 ...
随机推荐
- 无法修改linux/ubuntu密码(Authentication token manipulation error )问题解决过程【转】
转自:https://blog.csdn.net/caizi001/article/details/38659189 Vmware虚拟机里的ubunut系统长期不用,密码忘记了,无奈只能通过slax ...
- Python运维开发基础04-语法基础【转】
上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 仅用列表+循环实现“简单的购物车程 ...
- python异步编程模块asyncio学习(二)
尽管asyncio应用通常作为单线程运行,不过仍被构建为并发应用.由于I/O以及其他外部事件的延迟和中断,每个协程或任务可能按一种不可预知的顺序执行.为了支持安全的并发执行,asyncio包含了thr ...
- 题解-bzoj2554 Color
Problem Please contact lydsy2012@163.com! 题意概要:有 \(n\) 个球排成一列,每个球都有一个颜色,每次随机选出两个球,使得后者染上前者的颜色,求期望操作多 ...
- 题解 SP26045 【GCDMAT2 - GCD OF MATRIX (hard)】
承接一下洛咕上的题解,这里基本就是谈谈优化,放个代码的 我们发现这里的常数主要来自于除法,那么我们优化除法次数,把所有的 \(n/1...n/s\) (\(s=\sqrt n\))存下来,然后归并排( ...
- vue.js如何更改默认端口号8080为指定端口
执行npm run dev实际是在调用根目录下的package.json 打开package.json后可发现有这样一段代码 由此可知,我们应该查看build目录下的dev-server.js文件 在 ...
- maven本地上传jar包
maven本地上传jar包 在命令行中输入下面指令(是一行): mvn install:install-file -Dfile=D:\mvn\spring-context-support-3.1.0. ...
- LabVIEW---vi图标和符号的制作
前言: 使用图形化设计语言进行开发时候,为VI添加说明的一个重要的方法是为其建立一个形象的图标,每个VI都在前面板后程序框图的右上角有一个图标,它是VI的图形化表示.如果VI当作子VI调用,该图标就会 ...
- springboot:SunCertPathBuilderException: unable to find valid certification path to requested target
有次创建springboot工程时报错,在之前是没有问题的.见下: 出现这种情况,有时在URL最后加一个反斜杠就可以了,但是这次不行,加了也没有用. 后来把URL改成了:http://start.sp ...
- 【原创】大数据基础之Flume(2)kudu sink
kudu中的flume sink代码路径: https://github.com/apache/kudu/tree/master/java/kudu-flume-sink kudu-flume-sin ...