13、git

安装Git

网上有很多Git安装教程,如果需要图形界面,windows下建议使用TortoiseGit,linux建议使用Git GUI或者GITK。(windows下载exe安装包,linux可以使用命令行)

1. Git基本配置

配置用户名及邮箱

在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。

git config --global user.name "yuorname"
git config --global user.email "youremail"

配置好之后可以使用(查看配置)

git config -l

2. 创建Git仓库

可以直接调用git init初始化当前目录,即创建Git仓库。

3. 获得Git仓库远程仓库

如果需要克隆远程仓库,可以使用git clone,比如:

git clone https://github.com/vuejs/vue.git

4. 提交更新

Git中每个文件都有三种状态:committed、staged、modified。它们之间关系如下:

commit <-- stage <-- modify
commit --> --- --modify

我们获取的Git仓库中的所有文件都是committed状态,如果你在本地修改了文件a,a的状态就变成modified的;如果使用git add a,a的状态变成staged;如果使用git commit,a的状态就变成commited。这种状态变化也说明复制代码是很方便的,但是提交更新请慎重。
当然还有一种文件状态,未跟踪状态(unversioned/untracked),通过使用git add可以把未跟踪状态变更为staged;通过git rm可以将staged或者committed状态变为未跟踪状态。

git status

通常提交前先检查下修改了什么内容,当前Git目录下各文件的状态。

git add

git add可以添加文件或者目录,也可以使用通配符。比如:

git add Readme.md    # add file only
git add *.cpp        # add all cpp files
git add /home/code/  # add all files in /home/code
git diff

git diff可以查看当前目录的所有修改。
提交之前,还是单独确认下处于staged状态的文件有哪些,并保证修改正确。在实际应用中,可能还需要使用git diff导出PATCH做代码走读。
可以使用git diff --staged或git diff --cached查看staged与上次提交快照之间的区别。

git commit

提交前需慎重。直接调用git commit会弹出编辑器,输入提交日志(如果是多行日志,建议使用)。
针对单行日志提交的情况,可以使用如下命令: git commit -m "add readme"
还有一种快捷的提交方式,直接跳过stage缓存区,直接提交当前目录下的所有修改git commit -a(使用这个命令前建议确认下当前目录的修改是否正确、必须)。

git rm

git rm会把文件从当前目录删除(不会保存删除的文件)。如果需要从Git仓库中删除,但保留在当前工作目录中,亦即从跟踪清单中删除,可以使用 git rm --cached readme.md

5. 提交历史查看

可以使用git log查看当前工程的所有提交的日志。

git log --stat      # 仅显示摘要选项
git log --pretty=oneline        # 定制记录格式
git log --graph     # 图像化分支和版本更新

6. 撤销更新

7. 远程仓库

可以使用git remote查看当前的远程库。
git remote -v可以显示对应的克隆地址。(对于多个远程仓库很有用)

添加远程仓库

git remote add [short_name] [url] 可以添加新的远程仓库。

从远程仓库抓取数据

git fetch [remote-name] 可以从远程仓库抓取数据到本地。
也可以使用 git pull

推送数据到远程仓库

git push [remote_name] [branch_name]
默认使用origin和master。

查看远程仓库信息

git remote show origin

远程仓库的删除和重命名

git remote rename [old_name] [new_name]
git remote rm [remote_name]

8. 打Tags

可使用git tag显示当前库中的标签。

添加标签(含附注)

git tag -a v0.1 -m "my version 0.1"

使用如下命令查看Tag日志信息(指定对应标签的名字)

git show v0.1

也可使用SHA-1的提交表示创建tag:

git tag -a v0.2 [SHA-1] -m "my version 0.2"

分享标签

默认的,git push不会推送标签信息到远程仓库,需要通过命令显式推送。

git push origin v0.1

如果需要推送所有标签,使用

git push origin --tags

9. Git分支

git分支是轻量级的,速度很快,仅记录索引信息。

显示所有分支

使用git branch 可显示当前所有分支。
可以使用--merged和--no-merged查看已经合并、未合并的分支。

创建及切换分支

可以使用下面命令直接切换并创建分支

git checkout -b testing

等价于

$ git branch testing # 创建testing 分支
$ git checkout testing # 切换到testing分支

注意切换分支时请保持工作目录没有未提交的修改。Git鼓励使用分支,处理完问题之后合并分支即可。

分支合并

将hotfix分支合并到master(主分支)上,需要通过下面命令:

$ git checkout master
$ git merge hotfix

合并之后可以使用git branch -d hotfix 删除分支。
如果合并时存在冲突,需要手工修改。

创建远程分支:

克隆:git clone https://github.com/szc-sun/lagou-vue.git
创建本地的dev分支: git checkout -b dev
在本地创建dev分支并与远程dev分支对应: git checkout -b dev origin/dev
查看本地分支:git branch
切换到本地dev分支:git checkout dev
本地master分支推送到远程的dev分支:1.本地切换到master分支,2.git push origin master:dev
dev分支修改上传:1.本地切换到dev分支,2.git push
dev分支合并到master:1.本地切换到master分支,2.git merge dev(如果遇到冲突解决完后再次提交即可),3git push origin master

冲突:

git stash
git pull
git stash pop

转载于:https://www.cnblogs.com/zhongchao666/p/10973602.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483259.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

神经网络支持大脑是「预测机器」,预测是节能的

来源&#xff1a;ScienceAI编译&#xff1a;绿萝我们的大脑&#xff0c;一个包裹在骨性头骨内的三磅重的组织&#xff0c;如何从感觉中产生知觉是一个长期存在的谜。大量证据和数十年的持续研究表明&#xff0c;大脑不能像拼拼图一样&#xff0c;简单地组合感官信息来感知周围环…

数据结构与算法——链表题目实现

文章目录1.链表逆序1.1 题目描述1.2链表逆序的C实现2.反转链表2.1 题目描述2.2 反转链表的C实现3.求两个链表的交点3.1 题目描述3.2 C实现——set3.3 C语言实现——链表长度实现4.链表求环4.1 题目描述4.2 C实现4.3 C语言实现——快慢指针5.分隔链表5.1 题目描述5.2 C实现6.复制…

元宇宙不是下一代互联网,而是人类群体思维空间或梦境世界的具现

前言&#xff1a;本文是根据6G俱乐部举办的6G与元宇宙研讨会上的发言整理形成作者&#xff1a;刘锋目前&#xff0c;业内有一种声音提出元宇宙是下一代互联网&#xff0c;之前WEB2.0、物联网、移动互联网和区块链爆发的时候也曾经这样表达过&#xff0c;如果从互联网的发展历史…

【Redis】三、Redis安装及简单示例

&#xff08;四&#xff09;Redis安装及使用 Redis的安装比较简单&#xff0c;仍然和大多数的Apache开源软件一样&#xff0c;只需要下载&#xff0c;解压&#xff0c;配置环境变量即可。具体安装过程参考&#xff1a;菜鸟教程Redis安装。 安装完成后&#xff0c;通过redis-ser…

数据结构和算法——栈、队列、堆

文章目录1.预备知识1.1 栈1.2 队列1.3 堆2.用队列实现栈2.1 题目描述2.2 解题思路2.3 C实现3.用栈实现队列3.1 题目描述3.2 解题思路3.3 C实现4.最小栈4.1 题目描述4.2 解题思路5.合法的出栈序列5.1 题目描述5.2 解题思路5.3 C实现6.基本计算器6.1 题目描述6.2 解题思路7.数组中…

LeetCode 刷题笔记 (树)

1. minimum-depth-of-binary-tree 题目描述 Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.求二叉树的最小深度&#xff1b;解题思路 递归遍历二叉树的每…

综述 | 北斗系统应用趋势分析

来源&#xff1a;智绘科服初审&#xff1a;张艳玲复审&#xff1a;宋启凡终审&#xff1a;金 君一、前言2020年6月23日&#xff0c;北斗三号最后一颗组网卫星成功发射。2020年7月31日&#xff0c;北斗三号建成暨开通仪式举行&#xff0c;北斗三号全球卫星导航系统正式开通[1]…

数据结构与算法——贪心算法

文章目录1.分发饼干1.1 题目描述1.2 解题思路1.3 C实现2.摆动序列2.1 题目描述2.2 解题思路2.3 C实现3.移掉K位数字3.1 题目描述3.2 解题思路3.3 C实现4.跳跃游戏4.1 题目描述4.2 解题思路4.3 C实现5.跳跃游戏 II5.1 题目描述5.2 解题思路5.3 C实现6.用最少数量的箭引爆气球6.1…

人为什么要睡觉?科学家给出进一步答案

来源&#xff1a;科技日报作者&#xff1a;张佳欣 人类一生中有三分之一的时间在睡觉&#xff0c;包括苍蝇、蠕虫甚至水母等无脊椎动物也会睡觉。在整个进化过程中&#xff0c;睡眠对所有具有神经系统的有机体来说都是普遍的&#xff0c;也是必不可少的。然而你有没有想过&…

自我觉察-3:发现-我这么做究竟为了什么?

今天一个人在食堂吃饭时&#xff0c;不是很饿&#xff0c;又拿了很多菜&#xff0c;就挑挑拣拣的吃&#xff0c;然后呢&#xff0c;又觉得吃相不雅&#xff0c;让别人看了不好。就有点儿端着架子吃似的。这时候&#xff0c;我突然想起一句话“我用自认为优雅地姿势吃饭为了什么…

操作系统——简介

文章目录1.操作系统的功能和目标1.1 作为用户和计算机硬件之间的接口1.2 作为系统资源的管理者1.3 作为最接近硬件的层次2.操作系统的概念、功能和目标3.操作系统的四大特征3.1 并发3.2 共享3.3 虚拟3.4 异步4.操作系统的运行机制4.1 两种指令4.2 两种处理器状态4.3 两种程序5.…

Andrew Gelman、Aki Vehtari​ | 过去50年最重要的统计学思想是什么?

来源&#xff1a; 数据分析网作者 &#xff1a;Andrew Gelman 美国统计学家、哥伦比亚大学统计学教授Aki Vehtari 阿尔托大学计算机科学系副教授近日&#xff0c;图灵奖得主、“贝叶斯网络之父”Judea Pearl在Twitter上分享了一篇新论文“What are the most important statis…

全局唯一ID的生成

数据在分片时&#xff0c;典型的是分库分表&#xff0c;就有一个全局ID生成的问题。单纯的生成全局ID并不是什么难题&#xff0c;但是生成的ID通常要满足分片的一些要求&#xff1a; 1 不能有单点故障。 2 以时间为序&#xff0c;或者ID里包含时间。这样一是可以少一个索引…

操作系统——进程

文章目录1.进程的定义2.进程的组成3.PCB4.进程的状态4.1 进程的五种状态4.2 进程状态间的转换5.进程控制6.进程通信6.1 共享存储6.2 管道通信6.3 消息传递7.线程7.1 线程的概念7.2 引入线程后的变化7.3 线程的属性7.4 线程的实现方式7.4.1 用户级线程7.4.2 内核级线程7.4.3 混合…

10分钟了解图卷积神经网络的常用算法和发展方向

来源&#xff1a;数学算法俱乐部近几年&#xff0c;机器学习在各个领域井喷式发展&#xff0c;现已成为当下最热门的技术。掌握机器学习&#xff0c;你就比 80% 的人更具备竞争优势。谷歌的无人驾驶、抖音的推荐系统、百度的人脸识别、大疆的无人机、科大讯飞的语音识别、小米的…

python学习之数据类型(int,bool,str)

第三章 数据类型 3.1 Python基本数据类型 类型含义描述int整数主要用来进⾏数学运算str字符串可以保存少量数据并进⾏相应的操作bool布尔值判断真假&#xff0c;True&#xff0c;Falselist列表存储⼤量数据&#xff0c;⽤[ ]表示tuple元组不可以发⽣改变 用( )表示dict字典保存…

操作系统——调度

文章目录1.调度的概念2.调度的三个层次2.1 高级调度2.2 中级调度2.3 低级调度2.4 三种调度之间的关联1.调度的概念 2.调度的三个层次 2.1 高级调度 2.2 中级调度 2.3 低级调度 2.4 三种调度之间的关联

诺奖得主被曝40多篇论文造假!

来源&#xff1a;科研城邦截止2021年11月6日&#xff0c;Gregg L. Semenza教授针对其在Pubpeer被挂的52篇论文&#xff0c;进行了至少6篇文章的纠正&#xff0c;且撤回了1篇文章。离谱的是&#xff0c;这位美国约翰霍普金斯大学教授&#xff0c;正是2019年诺贝尔生理学或医学奖…

操作系统——死锁

文章目录1.死锁的概念2.死锁产生的必要条件3.什么时候会发生死锁4.死锁的处理策略4.1 预防死锁4.1.1 破坏互斥条件4.1.2 破坏不剥夺条件4.1.3 破坏请求和保持条件4.1.4 破坏循环等待条件4.2 避免死锁4.2.1 安全序列4.2.2 银行家算法1.死锁的概念 2.死锁产生的必要条件 3.什么时…

苏联的三进制电脑,为什么被二进制干掉了?

来源&#xff1a;差评 当我们在电脑上打开一个软件&#xff0c;看一部电影&#xff0c;听一首歌的时候&#xff0c;我们很难想象&#xff0c;这些东西都是由 0 和 1 这样的二进制数字组成的。但你有没有好奇过&#xff1f;为什么计算机要用二进制呢&#xff1f;难道是因为它效…