简单快捷使用Git
1、简介和安装
Git是世界上目前最先进的分布式版本控制系统。
安装:https://git-for-windows.github.io下载。
设置姓名和email:
git config --global user.name "Yaohui"
git config --global user.email "1250661383@qq.com@example.com"
2、版本库
2.1、创建:创建一个空目录
mkdir git
cd git
pwd 用于显示当前目录
2.2 用git init(初始化) 把这个目录变成git可以管理的仓库,如果目录地下没有.git(版本库)的目录,因为这个目录是默认隐藏的,用 ls -ah显示。
把一个文件放入Git仓库第一步:
Git add 文件名 告诉Git,把文件添加到仓库。第二步:
Git commit -m 提交到仓库。-m后面输入本次提交的说明
Git status 查看仓库状态。
Git diff(difference) 查看具体修改的内容。
Git log 查看历史记录。
Git reset 切换、退回版本。HEAD表示最新版本
Git reflog 记录用户每一次命令。
Git与SVN最大的不同之处就是有暂存区。
.git(版本库)存放最重要的是stage(或者叫index)暂存区。自动创建一个master分支,以及指向master的指针HEAD,commit就是往分区上提交。
理解为需要提交的文件修改通通放在暂存区,然后一次性提交暂存区的所有修改到分支,提交后没有对工作区做修改的话,那么工作区就是干净的。
3、管理修改
删除、增加、修改一行都属于修改。
Git checkout -- 文件名 就是把该文件在工作区的修改全部撤销。分为两种:一种是修改没有放到暂存区的话撤回到版本库的状态。第二种是已经存放到暂存区,撤回到暂存区后的状态。也可以理解为最近一次 Git commit 或者 Git add时的状态。
Git rm 删除文件。
4、远程仓库
4.1 创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
ssh-keygen -t rsa -C "1250661383@qq.com@example.com"
里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
4.2 登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
GitHub允许添加多个key。
首先,登陆GitHub,然后,在右上角找到“New repository”按钮,创建一个新的仓库:
在Repository name填入1507,其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的learngit仓库下运行命令
Git remote add 远程仓库名字(默认叫做origin) git@github.com:自己github账户名/本地仓库名字(yaohui.git)
git push -u(会吧本地分支和远程分支连接起来)本地仓库内容推送远程仓库。(git push 远程仓库名字 master)
git remote add 远程仓库名称 关联远程仓库
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;第一次推送加上 -u
5、分支管理
git分支与众不同,无论创建、切换或删除分支,一秒就可以完成,不论大小。
每次提交Git都会把它们串成一个时间线,时间线就叫做分支。
创建dev分支,然后切换到dev分支:
git branch dev 创建 git branch 查看当前分支
git checkout -b(表示创建并切换) dev 切换
git merge dev 合并
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
强制删除分支:git branch -D <name>
Git远程分支操作
查看全部分支:git branch -a
删除远程分支:git push origin --delete <name>
git push origin :<name>
6、码云
使用码云和使用GitHub类似,我们在码云上注册账号并登录后,需要先上传自己的SSH公钥。选择右上角用户头像 -> 菜单“修改资料”,然后选择“SSH公钥”,填写一个便于识别的标题,然后把用户主目录下的.ssh/id_rsa.pub文件的内容粘贴进去:
我们在码云上创建一个新的项目,选择右上角用户头像 -> 菜单“控制面板”,然后点击“创建项目”,名称最好与本地库名保持一致。
使用命令git remote add把它和码云的远程库关联,正常地用git push和git pull推送了。
git remote -v 查看远程库信息。远程库码云中叫做gitee。剩下操作和远程命令一样。
7、忽略文件
7.1 忽略操作系统自动生成的文件,比如缩略图
7.2忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库。
7.3忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件
8、配置别名
简单快捷使用Git的更多相关文章
- 简单快捷好用的vim配置和终端配置推荐
vim 配置实用spf13-vim,安装方便简单快捷,极力推荐. 另外oh-my-zsh 终端配置很好,与之搭配使用效果更佳. 安装都很简单,一个脚本搞定, 都是在gitHub上开源的,自行搜索,这里 ...
- .net下简单快捷的数值高低位切换
.net下简单快捷的数值高低位切换 做网络通讯中数值传输是很普遍的事情,但数值的存储在不平台和硬件上存储方式都不一样,主要有两大类分别是高位和低位存储:而.net平台下是低位存储,通过.net提供的函 ...
- 简单快捷地测试 JPush API
随着 JPush API v3版本的推出,加上之前开放的 Report API,JPush API 逐渐切换为比较好的符合 REST API 的规范,从而也很容易地使用一般的 HTTP/REST 工具 ...
- 右键快捷打开Git Bash here失败
右键快捷打开Git Bash here失败,提示: Error: Could not fork child process: Resource temporarily unavailable (-1) ...
- percona-xtrabackup-8.0.7简单快捷使用
percona-xtrabackup-8.0.7简单快捷使用 # 参考资料: https://blog.csdn.net/vkingnew/article/details/83012316 # 环境: ...
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...
- goss 简单快捷的服务器测试检验工具
goss 是一个简单.快捷的服务器测试检验工具,dgoss 是一个包装可以支持基于容器的开发模式 同时可以暴露测试结果为一个http endpoint,比较方便. 使用goss容器运行 使用数据卷的模 ...
- 无脑简单 命令升级git Centos
yum remove git yum install zlib (系统默认已经装上) yum install zlib-devel ># wget https://github.com/git/ ...
- 简单 常用的git命令
常用的git命令 git pull 获取最新 git add . 提交所有 git commit -m “我的注释” git status 查看状态 git push origin master ...
随机推荐
- 1093 字符串A+B
给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集.要求先输出 A,再输出 B,但重复的字符必须被剔除. 输入格式: 输入在两行中分别给出 A 和 B,均为长度不超过 106 ...
- Java语法基础学习DayFifteen(IO续)
一.缓冲流(处理流的一种) 1.作用:可以提高文件操作的效率 2.使用BufferedInputStream和BufferedOutputStream实现非文本文件的复制 特点:flush()方法 代 ...
- mysql-5.7.23-winx64.zip安装教程
请参考这篇文章:https://www.jianshu.com/p/94647c0c98c4
- Java通过URL 从web服务端获取数据
1.Java 通过HttpURLConnection Post方式提交json,并从服务端返回json数据 package Demo.Test; import java.io.ByteArrayOut ...
- ubuntu 升级 python3.5到 python3.6
首先是在Ubuntu中安装python3.6 sudo apt-get install software-properties-common sudo add-apt-repository ppa:j ...
- 周强201771010141《面向对象程序设计(java)》第六周学习总结
枚举是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁,安全性以及便捷性.创建枚举类型要使用enum关键字,隐含了 ...
- acrgis导出成tiff图片,全是黑色
任务:将北京道路矢量数据转成栅格然后导出成tiff格式图片. 1. 北京道路有很多种,矢量合并---用到了merge工具 arcgis位置:data management----general---- ...
- jQuery-2.DOM---节点的复制与替换
DOM拷贝clone() 克隆节点是DOM的常见操作,jQuery提供一个clone方法,专门用于处理dom的克隆 .clone()方法深度 复制所有匹配的元素集合,包括所有匹配元素.匹配元素的下级元 ...
- Kafka 术语
什么是Kafka? Apache Kafka是一个分布式流媒体平台,允许你发布和订阅记录流,允许你以容错方式存储记录流,允许你处理数据流.或是说Kafka是一个分布式.支持分区.多副本的,基于zook ...
- JAVA高级篇(二、JVM内存模型、内存管理之第二篇)
本文转自https://zhuanlan.zhihu.com/p/25713880. JVM的基础概念 JVM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机. JVM也充 ...