Git指令小结
一、初始化
git config --global user.name "username"
设置git用户名
git config --global user.email "email"
设置git邮箱号
git init
通过命令 git init 把当前目录变成git管理的本地仓库
git add filename
把文件存到暂存区
git commit -m "note"
把文件提交到本地仓库
二、常用操作
git status
查看当前库的git状态
git diff filename
查看文件改动状态
git log
查看git操作日志
git reset --hard HEAD~N
回退git版本到第N个版本前
git reflog
可查看git每步操作的版本号(查看完成按Q可退出查看)
git reset --hard verNum
git到指定版本(根据版本号)
git checkout -- filename
丢弃工作区的修改。例如修改了文档还没有git add。add后无法撤销修改。
rm filename
删除文件,删除后git checkout -- filename可以撤销删除,恢复文件。
三、远程仓库的绑定使用
ssh-keygen -t rsa -C "email"
创建SSH私人密钥和公共密钥
git remote add origion https://github.com/aaa/PC1.git
利用上一步的PC的公共密钥
先在github个人账户上New SSH Key;
再建立新仓库New repository,得到仓库的http地址后,
将github库与本地PC绑定,需在git输入github的账号和密码。
git push -u origion master
把当前分支master推送到远程(github仓库),首次加-u。
git push origion master
本地与远程仓库绑定后,修改本地后,利用该指令同步到远程仓库。
git clone https://github.com/aaa/PC2.git
从远程仓库克隆到本地。
四、分支操作
git branch
查看git所有分支。
git checkout -b 分支名
创建并切换到这个分支。相当于git branch bran1 和 git checkout bran1这两条指令。
git merge branch
现在我们想要把branch分支上增加的内容合并到当前分支,可以在当前分支(任何分支皆可)上使用该命令。
git branch -d bran2
删除某个分支。
git pull
获取远程分支上的最新内容
五、常用流程
使用Git提交文件到本地库和远程库:
1:使用 git add filename把文件添加到暂存区。
2:使用git commit -m "note"提交更改,实际上就是把暂存区的所有内容提交到当前master分支上。
3:使用git push origion master:把本地master分支的最新修改交托给GitHub的origin分支,完成这一步才真正意义上拥有了分布式版本库。(集中式、分布式)
分支管理策略:
通常我们合并分支的时候,Git一般是用Fast forward模式,这种模式下,删除分支之后,会丢掉分支信息,现在我们来使用--no--ff来禁用Fast forward模式。
1:创建一个dev分支。git checkout -b dev
2:修改README.md内容。
3:添加到暂存区、工作区。git add README.md \ git commit -m "change1"
4:切换回bran1分支。git checkout bran1
5:合并dev分支,使用命令:git merge --no--ff -m "note" dev
6:删除dev之后我们发现在最后的log中还有dev的操作。git branch -d dev
7:查看历史记录。git log
8:分支策略:master主分支应该是非常稳定的,也是用来发布的新版本,一般情况下干活都不在master分支上干,都是在新建的分支上,干完之后需要发布,或者说新建分支代码稳定之后可以合并到主分支master上。
bug管理策略:
1:隐藏当前分支下的工作状态 git stash
2:查看git状态是否干净。git status
3:切换到bug所在的分支 。gitcheckout branch
4:在bug分支上新建分支。git checkout -b branbug
5:修改bug代码
6:提交修改后的文件。git add filename\ git commit -m "fix bug xxx"
7:切换到bug所在的分支。git checkout branch
8:合并刚才的修复。git merge --no--off -m "note" branchbug
9:删除修复bug的临时分支。git branch -d branchbug
10:切换到第一步正在工作状态的分支。git checkout bran1
11:查看隐藏的工作现场。git stash list
12:恢复的方式有两种:
a、git stash apply,这种恢复方式恢复后stash内容并不删除,需要使用git stash drop来删除。
b、另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。
多人合作:(本地master分支) 对应 (远程origin分支)
1:查看远程信息 git remote
2:查看远程库详细信息 git remote -v
3:拉取最新origion到当前分支 git pull
4:修改内容
5:推送自己的更改到origion :git push origion branch-name
六、note
如果我们改了本地文件,没有commit到某个分支A,那么在分支A下,cat filename是看不到本地改动 的。且在branch1下的commit,在branch2上cat filename也看不到。
一般情况下master分支是主分支,因此要时时刻刻与远程同步;一些修复的bug分支是不需要推送到远程的,只要先在本地合并到主分支上,然后把主分支master推送到远程去即可。
Git指令小结的更多相关文章
- 第一章 git指令与设置
相关指令: 1.从远程的master分支上创建新的分支,此时新分支内容与master分支内容相同: git checkout master; git branch newbranch; git che ...
- 使用git指令下载github仓库代码(笔记)
通过Git指令下载源码 Git概念说明 三种状态:修改状态.暂存状态和Git仓库 基本的Git工作流程: 在工作目录中修改文件 暂存文件,将文件的快照放入暂存区域 提交更新,找到暂 ...
- 工作中常用Git指令操作
常用Git指令总结 前阵子有几天好不顺,可谓是喝水都呛着,更何况被Git给呛着了,还不轻,哈哈.所以打算总结一下自己在工作使用到Git相关的东西以及和大家探讨使用GIt的心得体会.于是,关于Git的的 ...
- git 指令如何撤销一次merge
在使用git指令时难免会发生错误的merge的情况,那么如何在这种情况下回退到错误发生之前的情况? git reflog 指令显示历史的操作 4457e43 HEAD@{0}: reset: movi ...
- git 指令记录
由于之前一直用svn 用git也是用图形化的工具 还是要了解一下git指令 因为都是版本控制工具 有很多相似之处 所以理解起来也比较轻松 仓库: github上面的项目 工作目录下面的所有文件都不外乎 ...
- git指令总结及常见问题积累与解决方案
git指令总结及常见问题积累与解决方案 git初始化一个项目并且长传到服务器后端步骤: 1.本地文件操作 通过:git init初始化化一个项目 会出现一个隐藏文件 ,可以文件夹属性设置进行查看,此 ...
- git指令-未完待更新
git指令 1. $ git config --global user.name "Your Name" $ git config --global user.email &quo ...
- git 指令笔记
狂躁,太狂躁!!赶上过年,赶上自己的懒癌,12月底就学完的教程直到今天才整理笔记,中途沉默在游戏中..... 只给出Windows下git指令操作,推荐大家去廖雪峰前辈那里学习(百度搜索:廖雪峰的官方 ...
- Git学习小结 ~ Lethe's Blog
学习自https://www.liaoxuefeng.com/wiki/896043488029600 一.创建版本库 (1) git init 初始化一个Git仓库 (2)添加文件到Git仓库,分两 ...
随机推荐
- LeetCode随缘刷题之Java经典面试题将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成
今天给大家分享一个Java经典的面试题,题目是这样的: 本题是LeetCode题库中的49题. 将一个字符串数组进行分组输出,每组中的字符串都由相同的字符组成 举个例子:输入["eat&qu ...
- Spring系列12: `@Value` `@Resource` `@PostConstruct` `@PreDestroy` 详解
本文内容 @Resource实现依赖注入 @Value详细使用 @PostConstruct @PreDestroy的使用 @Resource实现依赖注入 前面章节介绍了使用@Autowired注入依 ...
- 使用IWebBrowser2操控浏览器页面测试(IE)
测试一下在IE浏览器界面中插入代码测试,采用寻找窗口的方式获取Internet Explorer_Server句柄. 写的时候参考了很多网上的资料,有些地方不大适用就稍微修改了一下. Send ...
- shell脚本部署zookeeper-3.4.10 [含注释]
文章目录 zk_install.sh conf/config conf/zoo_template.cfg package zk_install.sh #!/bin/bash base_path=$(c ...
- IPMI日常使用
重启ipmi: ipmitool mc reset <warm|cold> warm表示软重启: cold表示硬重启: 设置IPMI地址: ipmitool lan set 1 i ...
- 科普IIS是什么?IIS介绍!
1.Microsoft IIS 是允许在公共Intranet或Internet上发布信息的Web服务器.Internet Information Server通过运用超文本传输协议(HTTP)传输信息 ...
- 防世界之Web_warmup
题目: 啥都没有,右键打开页面源代码查看一下 发现source.php源文件,输入http://111.200.241.244:53776/source.php看看 <?php high ...
- CobaltStrike逆向学习系列(6):Beacon sleep_mask 分析
这是[信安成长计划]的第 6 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 C2Profile 分析 0x02 set userwx "true" 0x03 s ...
- PPPoE协议测试——网络测试仪实操
前言: 与传统的接入方式相比,PPPoE具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式 ADSL 就使用了PPPoE协议. 随着低成本的宽带技术变得日益流行 ...
- 计算机网络-IP篇
目录 IP 基本认识 IP地址 IP 地址的分类 公有 IP 地址与私有 IP 地址 IP 地址与路由控制 IP 分⽚与重组 IPv6 基本认识 IPv4 ⾸部与 IPv6 ⾸部 IP协议 DNS A ...