git 小乌龟 更新分支_git常用操作

656891b4c3764c7d53d09fbf44ca240f.png

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

入门

使用Git前,需要先建立一个仓库(repository)。您可以使用一个已经存在的目录作为Git仓库或创建一个空目录。
使用您当前目录作为Git仓库,我们只需使它初始化。git init
使用我们指定目录作为Git仓库。git init newrepo
从现在开始,我们将假设您在Git仓库根目录下,除非另有说明。

添加新文件

我们有一个仓库,但什么也没有,可以使用add命令添加文件。git add filename
可以使用add... 继续添加任务文件。

提交版本

现在我们已经添加了这些文件,我们希望它们能够真正被保存在Git仓库。为此,我们将它们提交到仓库。git commit -m "Adding files" 如果您不使用-m,会出现编辑器来让你写自己的注释信息。
当我们修改了很多文件,而不想每一个都add,想commit自动来提交本地修改,我们可以使用-a标识。git commit -a -m "Changed some files" git commit 命令的-a选项可将所有被修改或者已删除的且已经被git管理的文档提交到仓库中。
千万注意,-a不会造成新文件被提交,只能修改。

发布版本

我们先从服务器克隆一个库并上传。
git clone ssh://example.com/~/www/project.git现在我们修改之后可以进行推送到服务器。
git push ssh://example.com/~/www/project.git

取回更新

如果您已经按上面的进行push,下面命令表示,当前分支自动与唯一一个追踪分支进行合并。
git pull从非默认位置更新到指定的url。
git pull http://git.example.com/project.git

删除

如何你想从资源库中删除文件,我们使用rm。
git rm file

分支与合并

分支在本地完成,速度快。要创建一个新的分支,我们使用branch命令。
git branch testbranch命令不会将我们带入分支,只是创建一个新分支。所以我们使用checkout命令来更改分支。
git checkout test第一个分支,或主分支,被称为"master"。
git checkout master对其他分支的更改不会反映在主分支上。如果想将更改提交到主分支,则需切换回master分支,然后使用合并。
git checkout master
git merge test如果您想删除分支,我们使用-d标识。
git branch -d test

Git 的工作流程

一般工作流程如下:
1、克隆 Git 资源作为工作目录。
2、在克隆的资源上添加或修改文件。
3、如果其他人修改了,你可以更新资源。
4、在提交前查看修改。
5、提交修改。
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

Git 工作区、暂存区和版本库概念

工作区:就是你在电脑里能看到的目录。
暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:

193f106a3e85457c28f8f4321728190b.png
图中左侧为工作区,右侧为版本库。在版本库中标记为 "index" 的区域是暂存区(stage, index),标记为 "master" 的是 master 分支所代表的目录树。

1、初始化一个git仓库

git init        //该命令执行完后在当前目录生成一个.git目录 
git init newrepo       //指定目录作为git仓库,在newrepo目录下出现一个名为.git的目录 
git add *.c 
git add README 
git commit -m"初始化项目版本”         //将目录下以.c结尾及README文件提交到仓库中

2、克隆仓库

git clone            //克隆仓库 
git clone <repo> <directory>         //克隆到指定目录 
git clone git://github.com/schacon/grit.git       //克隆ruby语言的git代码仓库grit 
git clone git://github.com/schacon/grit.git mygrit     //新建项目目录 

3、获取与创建项目命令

git initmkdir runoob              //创建runoob项目 
cd runoob/                 
git init           //在 /www/runoob/.git/ 目录初始化空 Git 仓库完毕 ls -a git clonegit clone git@github.com:schacon/simplegit.git      //克隆github上的项目 
cd simplest/           //在当前目录下生成一个simplegit目录 
ls 
ls -a 
cd .git 

4、基本快照

git add touch README         //添加文件README         
touch hello.php       //添加文件hello.php 
ls
git status -s       //查看项目的当前状态
git add README hello.php       //添加文件
git status        //查看上次提交之后是否有修改git diff执行 git diff 来查看执行 git status 的结果的详细信息. 
git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景. 
尚未缓存的改动:git diff 
查看已缓存的改动: git diff --cached 
查看已缓存的与未缓存的所有改动:git diff HEAD 
显示摘要而非整个 diff:git diff --stat git add hello.php 
git status -s 
git diff —cached git commit 使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。 
Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。 
git config --global user.name ‘runoob’       //名字 
git config —-global user.email test@runoob.com        //电子邮箱 git add hello.php 
git status -s 
git commit -m"第一次版本提交” Git status git rmgit rm hello.php      //删除文件 
ls git mvgit add README      
git mv README README.md    //重命名
ls

5、git分支管理

git branch      //创建分支 
git checkout    //切换分支 
git merge      //合并分支 mkdir gitdemo 
cd gitdemo/ 
git init 
touch README 
git add README 
git commit -m"第一次版本提交” git branch    //列出分支 
ls
git add .
git commit -m”add test.txt”
ls
git checkout testing
ls
git checkout master
ls
git checkout -b newest
git rm test.txt
ls
touch hello.php
git add .
git commit -am"remove test.txt add runoob.php”
git checkout mastergit branch   
git branch -d testing       //删除分支 
git branch  git merge newest       //合并分支 git checkout -b change_site       //创建change_site分支 
git commit -am”change the runoob.php" git checkout master 
cat runoob.php 
vim runoob.php 
cat runoob.php git merge change_site 
cat runoob.php vim runoob.php 
cat runoob.php 
git diff git status -s 
git add runoob.php 
git status -s 
git commit 

6、git查看提交历史

git log     //列出历史提交记录 

7、git标签

git tag -a v1.0       //给最新一次提交打上(HEAD)"v1.0"的标签。-a 选项意为"创建一个带注解的标签” 
git tag 
git tag -a <tagname> -m"runoob.com标签" 
创建分支命令:
git branch (branchname) 切换分支命令:
git checkout (branchname) 
合并分支命令:
git merge你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。
开始前我们先创建一个测试目录:$ mkdir gitdemo
$ cd gitdemo/
$ git init
Initialized empty Git repository... 
$ touch README
$ git add README
$ git commit -m '第一次版本提交' 
[master (root-commit) 3b58100] 第一次版本提交 
1 file changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 README 

Git 分支管理

列出分支

列出分支基本命令:
git branch
没有参数时,git branch 会列出你在本地的分支。
$ git branch
* master 
此例的意思就是,我们有一个叫做 master 的分支,并且该分支是当前分支。
当你执行 git init 的时候,缺省情况下 Git 就会为你创建 master 分支。
如果我们要手动创建一个分支。执行 git branch (branchname) 即可。
$ git branch testing
$ git branch
* master testing
现在我们可以看到,有了一个新分支 testing。
当你以此方式在上次提交更新之后创建了新分支,如果后来又有更新提交, 然后又切换到了 testing 分支,Git 将还原你的工作目录到你创建分支时候的样子。
接下来我们将演示如何切换分支,我们用 git checkout (branch) 切换到我们要修改的分支。
$ ls
README
$ echo 'runoob.com' > test.txt 
$ git add . 
$ git commit -m 'add test.txt' 
[master 3e92c19] add test.txt 
1 file changed, 1 insertion(+) 
create mode 100644 test.txt 
$ ls
README        test.txt
$ git checkout testing
Switched to branch 'testing' 
$ ls
README
当我们切换到 testing 分支的时候,我们添加的新文件 test.txt 被移除了。切换回 master 分支的时候,它们有重新出现了。
$ git checkout master
Switched to branch 'master' 
$ ls
README        test.txt
我们也可以使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。
$ git checkout -b newtest 
Switched to a new branch 'newtest' 
$ git rm test.txt
rm 'test.txt' 
$ ls
README
$ touch hello.php
$ git add . 
$ git commit -am 'removed test.txt、add runoob.php' 
[newtest c1501a2] removed test.txt、add runoob.php 
2 files changed, 1 deletion(-) 
create mode 100644 runoob.php 
delete mode 100644 test.txt 
$ ls
README        runoob.php
$ git checkout master
Switched to branch 'master' 
$ ls
README        test.txt
如你所见,我们创建了一个分支,在该分支的上移除了一些文件 test.txt,并添加了 runoob.php 文件,然后切换回我们的主分支,删除的 test.txt 文件又回来了,且新增加的 runoob.php 不存在主分支中。
使用分支将工作切分开来,从而让我们能够在不同开发环境中做事,并来回切换。

删除分支

删除分支命令:
git branch -d (branchname) 例如我们要删除 testing 分支:
$ git branch
* master testing$ git branch -d testing 
Deleted branch testing (was 85fc7e7). 
$ git branch
* master 

分支合并

一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用以下命令将任何分支合并到当前分支中去:
git merge
$ git branch
* master newtest
$ ls
README        test.txt
$ git merge newtest
Updating 3e92c19..c1501a2 
Fast-forward
runoob.php | 0 
test.txt   | 1 - 
2 files changed, 1 deletion(-) 
create mode 100644 runoob.php 
delete mode 100644 test.txt 
$ ls
README        runoob.php
以上实例中我们将 newtest 分支合并到主分支去,test.txt 文件被删除。
合并完后就可以删除分支:
$ git branch -d newtest 
Deleted branch newtest (was c1501a2). 
删除后, 就只剩下 master 分支了:
$ git branch
* master 

合并冲突

合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。
$ git branch
* master 
$ cat runoob.php
首先,我们创建一个叫做 change_site 的分支,切换过去,我们将 runoob.php 内容改为:
<?php
echo 'runoob'; 
?>
创建 change_site 分支:
$ git checkout -b change_site 
Switched to a new branch 'change_site' 
$ vim runoob.php
$ head -3 runoob.php 
<?php
echo 'runoob'; 
?>
$ git commit -am 'changed the runoob.php' 
[change_site 7774248] changed the runoob.php 
1 file changed, 3 insertions(+) 
将修改的内容提交到 change_site 分支中。 现在,假如切换回 master 分支我们可以看内容恢复到我们修改前的(空文件,没有代码),我们再次修改 runoob.php 文件。
$ git checkout master
Switched to branch 'master' 
$ cat runoob.php
$ vim runoob.php    # 修改内容如下 
$ cat runoob.php
<?php
echo 1; 
?>
$ git diff
diff --git a/runoob.php b/runoob.php 
index e69de29..ac60739 100644 
--- a/runoob.php 
+++ b/runoob.php 
@@ -0,0 +1,3 @@ 
+<?php
+echo 1; 
+?>
$ git commit -am '修改代码' 
[master c68142b] 修改代码 
1 file changed, 3 insertions(+) 
现在这些改变已经记录到我的 "master" 分支了。接下来我们将 "change_site" 分支合并过来。
$ git merge change_site
Auto-merging runoob.php
CONFLICT (content): Merge conflict in runoob.php 
Automatic merge failed; fix conflicts and then commit the result. $ cat runoob.php     # 代开文件,看到冲突内容 
<?php
<<<<<<< HEAD 
echo 1; 
=======
echo 'runoob'; 
>>>>>>> change_site 
?>
我们将前一个分支合并到 master 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。
$ vim runoob.php
$ cat runoob.php
<?php
echo 1; 
echo 'runoob'; 
?>
$ git diff
diff --cc runoob.php 
index ac60739,b63d7d7..0000000
--- a/runoob.php 
+++ b/runoob.php 
@@@ -1,3 -1,3 +1,4 @@@ <?php 
+echo 1; 
+ echo 'runoob'; ?> 
在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决
$ git status -s 
UU runoob.php
$ git add runoob.php
$ git status -s 
M  runoob.php
$ git commit
[master 88afe0e] Merge branch 'change_site' 
现在我们成功解决了合并中的冲突,并提交了结果。

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

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

相关文章

web 服务器 内存 影响_C/C++服务器开发常用的7大开源库,让你在同行中脱颖而出...

C/C服务器开发7大常用开源库&#xff0c;在这里简单介绍一下。1、OpenSSLOpenSSL是一个开放源代码的安全套接字层密码软件库&#xff0c;囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议&#xff0c;应用程序可以使用这个包来进行安全通信&#xff0c;避免窃听&…

pandas 更改单元格的值_懂Excel轻松入门Python数据分析包pandas(二十四):连续区域...

此系列文章收录在公众号中&#xff1a;数据大宇宙 > 数据处理 >E-pd转发本文并私信我"python"&#xff0c;即可获得Python资料以及更多系列文章(持续更新的)经常听别人说 Python 在数据领域有多厉害&#xff0c;结果学了很长时间&#xff0c;连数据处理都麻烦得…

产生式是蕴含式_独栋别墅~下沉式庭院设计

遇见美. 发现美创造美. 成就美有趣、有情奢享生活.创艺空间设计项目概述&#xff1a;这是一套婚房&#xff0c;从设计到装修完毕&#xff0c;历经三年。这是一生幸福开启的地方。一层为会客厅、室内花园、餐厅、茶室、老人房。原始房屋整体空间不够方正&#xff0c;空间利用率低…

在前端中如何在表格中最后一行加入输入框_UI设计进阶干货 — 如何制定UI规范...

APP为何要制定设计规范作为UI设计师&#xff0c;整理设计规范也是设计能力的一种体现。但很多小公司的设计师都觉得, 整个公司只有自己一个设计师, 所有的设计稿都是自己一个人做的, 风格肯定都是统一的, 所以没必要花那么长时间去做一个没有用的东西。但其实规范的本身并不是只…

如何用三元组表表示下列稀疏矩阵_盘一盘 Python 系列特别篇21之:SciPy 稀疏矩阵...

引言和稠密矩阵相比&#xff0c;稀疏矩阵的最大好处就是节省大量的内存空间来储存零。稀疏矩阵本质上还是矩阵&#xff0c;只不过多数位置是空的&#xff0c;那么存储所有的 0 非常浪费。稀疏矩阵的存储机制有很多种 (列出常用的五种)&#xff1a;COO (Coordinate List Format)…

六西格玛dfss_向六西格玛质量水平进攻!

为提高设计质量&#xff0c;提升研发团队整体作战能力&#xff0c;2019年初&#xff0c;技术中心确定了大力推进先进质量管理方法DFSS(六西格玛设计)的工作目标。一年来&#xff0c;在DFSS小组的策划组织和通用黑带大师的倾力支持下 &#xff0c;技术中心各区域工程师积极地学习…

c字符串中包含双引号_必须知道的C语言知识细节:单引号和双引号正确用法

C语言中ACSII码字符单引号和双引号"在程序中经常出现&#xff0c;很简单&#xff0c;但却是十分重要的语法标点符号&#xff0c;初学者容易混淆使用。单引号在字符常量时使用&#xff0c;表示单个字符。例如&#xff1a;char c;c a;c 1;c A;当在单引号中出现两个及以上…

计算机组成原理哈工大期末_浅谈计算机组成原理(三)

1、第二章&#xff1a;存储系统通过下面的思维导图来依次分享「存储系统」里面重要知识点。2、第一节&#xff1a;存储器的结构1. 主存储器&#xff1a;简称主存&#xff0c;又称内存储器(内存)&#xff0c;用来存放计算机运行期间所需的大量程序和数据&#xff0c;CPU可以直接…

网页中竖的目录怎么改成横的_怎么学习手绘插画?小白也能入门哦

怎么学习手绘插画&#xff1f;小白也能入门哦&#xff01;在回答这个问题之前&#xff0c;我们先来认识一下什么插画&#xff1f;相信很多人对插画这个概念是很笼统的。插画在中国被人们俗称为插图。发展至今其应用范围很是广泛包括&#xff1b;出版物配图、卡通吉祥物、广告、…

python自动测试v_python下selenium自动化测试自我实践

周末实验自动化提交数据时&#xff0c;本来没打算写记录的&#xff0c;不过遇到一些问题&#xff0c;觉得可以提提。基本操作就不用写了&#xff0c;搜索过程中都发现了两个博客都出了seleniumpython的书&#xff0c;说明操作一搜一大把。 1. 等待页面加载完成 本来用的sleep()…

graphpad细胞增殖曲线_肿瘤干细胞?居然被这两个新加坡人轻松干掉了?

近日&#xff0c;著名医学期刊《自然•医学》上发表了一篇关于肿瘤干细胞的文章。来自新加坡的研究团队发现&#xff0c;人类非小细胞肺癌的肿瘤干细胞需要大量的蛋氨酸&#xff0c;以维持自身组蛋白的甲基化&#xff0c;这对于肿瘤干细胞的生长和致瘤作用至关重要。同时&#…

isight参数优化理论与实例详解_案例1(ISIGHT集成ADAMS CAR方法实现)

本文字数1304字25图&#xff0c;建议阅读时间7分钟强调一下是ISIGHT&#xff0c;不是INSIGHTINSIGHT是ADAMS内置的一个试验设计模块&#xff0c;它提供了一组统计工具&#xff0c;用于分析仿真结果&#xff0c;辅助优化和改进系统ISIGHT是功能强大的计算机辅助优化平台&#xf…

修改图片src_【学习园地】企业SRC搭建

xSRC-企业SRC搭建腾讯xSRC 开源版是腾讯安全应急响应中心(TSRC)面向合作伙伴推出的安全应急响应中心(SRC)建站软件&#xff0c;软件源代码开放&#xff0c;可支持合作伙伴轻松构建SRC平台&#xff0c;省去大量开发运维工作&#xff0c;并支持个性化功能及页面设置&#xff0c;企…

2 数据源配置_论多数据源(读写分离)的实现方案

好的&#xff0c;作为一个合格的bug生产者&#xff0c;我们直接进入主题&#xff0c;多数据源和读写分离实现方案。首先多数据源和读写分离什么时候我们才需要呢&#xff1f;多数据源&#xff1a;一个单体项目过于复杂&#xff0c;需要操作多个业务库的时候&#xff0c;就需要多…

docker安装gitlab_docker 安装部署gitlab

下载镜像并且启动//下载镜像(镜像较大,如果网速不行可以切换阿里云镜像仓库) docker pull gitlab/gitlab-ce&#xff1a;latest //启动镜像 docker run --name gitlab -d -p 18080:80 -p 1443:443 -p 2222:22 -v /data/gitlab/config:/etc/gitlab -v /data/gitlab/logs:/var/lo…

easyexcel导出百万级数据_百万级别数据Excel导出优化

这篇文章不是标题党&#xff0c;下文会通过一个仿真例子分析如何优化百万级别数据Excel导出。笔者负责维护的一个数据查询和数据导出服务是一个相对远古的单点应用&#xff0c;在上一次云迁移之后扩展为双节点部署&#xff0c;但是发现了服务经常因为大数据量的数据导出频繁Ful…

运行catia_CATIA清除错误目录及防串链接

清除错误目录大家好今天我来教大家如何清除CATIA错误目录&#xff0c;由于我们在日常工作中经常会互相发送数据&#xff0c;而CATIA的缓存功能通常会记录这些文件的路径&#xff0c;所以我们打开别人发的数据时在桌面的右下角通常会有警告的提醒&#xff0c;那我们如何来清除缓…

python 键盘输入数字_九宫格键盘输入

九宫格键盘输入 Letter Combinations of a Phone Number 给定一个数字字符串&#xff0c;返回数字可能代表的所有可能的字母组合。 数字到字母的映射&#xff08;就像九宫格电话按钮一样&#xff09;如下图。 Given a digit string, return all possible letter combinations t…

java2组随机数的共通数_java随机数产生-指数分布 正态分布 等

1 指数分布指数分布的概率密度函数&#xff1a;ylamda*exp(-lamda*x)x>0由此可以计算概率分布函数&#xff1a;y1-exp(-lamda*x)x>0y是 X首先&#xff0c;把y当作是在(0&#xff0c;1)区间的均匀分布的随机变量。然后&#xff0c;求y1-exp(-lamda*x)的逆函数&#xff0c…

c# combobox集合数据不显示_excel打开数据时显示乱码/问号amp;看起来一样却v不出来怎么办...

1、乱码问题&#xff1a;今天正好碰到这种情况&#xff0c;想起来写一写。有时从客户那里拿到的CSV等文件&#xff0c;直接用excel打开是这样的&#xff1a;其实观察一下会发现&#xff1f;的地方一般就是中文&#xff0c;实质上是中文字符显示不出来。有小伙伴一直是单独下个W…