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仓库,分两 ...
随机推荐
- iOS 屏幕录制实现
iOS 屏幕录制实现 目录 iOS 屏幕录制实现 录屏API版本变化 App内部录制屏幕 录音麦克风声音 App内部录屏直播 Bonjour APP广播端实现 广播端App(直播平台)的实现 iOS1 ...
- ClassPath资源的读取
读取ClassPath的资源 在程序中经常有很多资源需要读取,常见的就是配置文件,Java中将文件当作一种资源来处理,可以使用Class或者ClassLoader来处理 一,使用Class类的getS ...
- Solution -「Ynoi 2018」「洛谷 P4117」五彩斑斓的世界
\(\mathcal{Description}\) Link. 给定序列 \(\{a_n\}\),处理 \(m\) 次操作: 给定 \(l,r,x\),把 \([l,r]\) 内所有 \(&g ...
- Solution -「多校联训」签到题
\(\mathcal{Description}\) Link. 给定二分图 \(G=(X\cup Y,E)\),求对于边的一个染色 \(f:E\rightarrow\{1,2,\dots,c\ ...
- Solution -「JOISC 2019」「LOJ #3036」指定城市
\(\mathcal{Description}\) Link. 给定一棵含 \(n\) 个结点的树,双向边权不相同.\(q\) 次询问,每次询问在树上标记 \(e\) 个点,标记的价值为所有趋 ...
- mysql中generated always as的使用
-- generated always as的使用 CREATE TABLE t1( c1 INT, c2 DOUBLE(20,19) , c3 INT GENERATED ALWAYS AS(c1* ...
- 实战OutOfMemoryError异常
深入理解JVM的一个重要目的就是解决实际生产中的出现的异常,并能从根上处理问题.JVM定义的异常有哪些呢?见下表: 除了计数器未定义异常,其他都会有OutofmemoryError的异常,下面就实战这 ...
- Nested Class(嵌套类)
在类.结构或接口中定义的类型称为嵌套类型. 例如 public class Container { class Nested { Nested() { } } } 不论外部类型是类.接口还是构造,嵌套 ...
- 2020ICPC南京 M.Monster Hunter
题目大意 一颗根为 \(1\) 的有 \((2≤≤2000)\) 个节点的树,每个节点有一个权值 \(ℎ_{} (1≤ℎ_{}≤10^9)\) ,能删除某个点的前提是其父亲节点已经被删除,并且删除一个 ...
- 洛谷P3267.侦察守卫
题目大意 一颗 \(n(1\leq n\leq 5\times 10^5)\) 个节点的树,在某一点 \(i\) 花费 \(w_{i}(w_{i}\leq 1000)\) 放置一个侦察守卫后可以监视到 ...