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下载安装即可 ...
随机推荐
- CFileFind
1.CFileFind类的声明文件保存在afx.h头文件中.2.该类的实现的功能:执行本地文件的查找(查找某个具体的文件,查找某类文件x*.x*,查找所有文件*.*)3.CFileFind类是CGop ...
- 在Ubuntu 16.04下安装nodejs
源安装: 1.curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash - 2.sudo apt-get install -y node ...
- 专题:CF图论杂题
题目是来自HZW的博客(构造题我是各种不会...) Solved 1 / 1 A CodeForces 500A New Year Transportation Solved 1 / 1 B Code ...
- Docker 导出 & 导入
Docker 容器因为它的快速部署被深受喜爱.本文记录 Docker 容器的导出与导入,分别用到 Docker 的 export 和 import 命令. 1.查看正在运行的容器: [root@loc ...
- 修改SIP协议中的User-Agent名称
修改目的:如果user-agent 带上了 GIT 版本信息,容易被人抓住版本漏洞针对性的攻击. 示例如下: SIP/2.0 100 Trying Via: SIP/2.0/UDP 192.168.5 ...
- springboot:扩展类型转换器
需求:提交一个字符串到后端的java.sql.Time类型,就报错了: Failed to convert property value of type [java.lang.String] to r ...
- 在内网使用Gradle构建Android Studio项目
在Android Studio项目中,默认的远程仓库为jcenter,如果在项目引用了一些类库,Gradle构建程序的时候会将这些依赖类库从jcenter网站下载到本地,如我们在 build.grad ...
- android中的LaunchMode详解----四种加载模式
Activity有四种加载模式: standard singleTop singleTask singleInstance 配置加载模式的位置在AndroidManifest.xml文件中activi ...
- 【MySql】Order By 排序
你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果. 你可以设定多个字段来排序. 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列. 默认情况下,它是按升序排列. 你 ...
- 机器学习之线性回归---logistic回归---softmax回归
在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...