博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
五分钟开始你的Git之旅
阅读量:6242 次
发布时间:2019-06-22

本文共 2411 字,大约阅读时间需要 8 分钟。

hot3.png

很多人认为Git太混乱或太复杂而没有把它当做版本控制工具。然而Git正在成长,另外很多很有意思的事情也随之发展起来。这篇文章瞄准了想开始用Git的人群,通常是从Subversion(另一个版本控制工具)转过来的。这篇文章将包含你需要学会的大部分最常用的基本技能。

让我们开始吧

       使用Git你得安装一个版本库。你可以用一个已经存在的目录来做一个Git库,或者创建一个空目录。
 
       把当前的目录设置为一个Git库我们只需要初始化:
       git init
       要做一个新目录当做Git库的话,我们需要指定一个目录:
       git init newrepo
       从现在起,除非另有说明,我们假设你一直都在这个Git库的根目录。

添加新文件

       所以我们只有一个什么都没有的库。你可以用add命令来添加文件:
       git add filename
       想添加你目录里的所有文件你可以用这个:
       git add

提交版本

       现在我们已经添加了一些文件,我们想让它们真正的存在Git库里。可以通过下面这条命令这把它们提交给Git库:
       git commit -m “Adding files”
       如果遗漏了-m,你需要自己在编辑器里写上信息。

编辑文件

       当你对某些文件做出改变时,你可以试试git status来看看提交后会发生什么事。你会注意到一个修改文件的列表,以及一条信息:
       no changes added to commit (use “git add” and/or “git commit -a”)
       所以除非你明确地用git add添加文件并提交到git库,不然git commit一点用也没有。如果你正在找能自动提交本地修改文件的提交命令可以加上-a标识:
       git commit -a -m “Changed some files”
       或者如果你只想把某些文件,而不是运行git add,我们可以传递一些指定的文件:
       git commit -m “change some files” file1 file2
       一定要注意-a不会提交新文件,而只会提交修改后的文件。

发布你的Git库

       把你的库放到服务器上我们需要从建立一个空库开始,然后把你的Git库上传到服务器上。
       cd /tmp
       git clone --bare ~/your/repo/path project.git
       scp -r project.git ssh://example.com/~/www/
       现在如果我们我很多提交文件并想把它们推送到那个位置:
       git push ssh://example.com/~/www/project.git
       如果你不喜欢每次都敲URI我们可以从一个克隆的项目记着它的地址来采取点便利方法:
       cd..
       git clone ssh://example.com/~/www/project.git project
       现在git push就会推送至他克隆来的URI。你可以通过在你的库里手工编辑.git/config来实现这一点。

获取上游的改变

       如果你已经照上面把推送安装好了:
       git pull
       上面这个命令将会把库里的改变获取回来并且把它们结合起来。从非默认路径获取只需要指定URI:
       git pull http://git.example.com/project.git

五分钟之外的奖励

       
提交
       你已经注意到了,Git以“提交”的方式在思考。这些提交被一个hash值唯一地标记。你可以用git log命令浏览提交历史和相应的hash值。每个提交都包含了改动信息,新文件和那些被移除的文件。Add命令会把一个文件放到提交里面。git reset HEAD会把计划提交里的一切都移除掉,但不改变文件里的内容。
       
移除
       如果你想从你的Git库里吧一个文件移除,我们用rm命令来把它从以后的提交里移除:
       git rm file
       
分支与合并
       分支是在本地迅速完成的。我们用branch命令来建立一个新分支:
       git branch test
       branch命令并不会把我们移动到我们建立的那个分支里去,它只会创建。我们用checkout命令来变换到不同的分支里去:
       git checkout test
       第一个分支,或主要分支,被称为“master”。
       git checkout master
       然而你在分支里提交的改变并不会在主分支里体现出来。当你完成后,或者想推送改变到主分支的时候,切换到主分支并使用merge命令:
       git checkout master
       git merge test
       另外如果你不再需要这个分支的时候你可以用branch命令传送-d标识来删掉它:
       git branch -d test
       
穿越时空
       你可以再次使用checkout命令很快地恢复Git库到以前的状态:
       git checkout HASH
       没有提交的改变将会和你一起穿越。用git checkout master命令来恢复到预置状态,普通分支也的做法也一样。如果你在过去提交的分支是自动创建的,你对文件做出的改变会与前面的内容结合起来。
       
以后被掩盖的真相
       当在分支之间切换的时候,你本地的改变也会随着变化。有时你想切换分支但又不想提交或让这些改变随着变化。Stash命令允许你把改变放到一个安全的存储里。
       git stash
       你可以通过传递一个apply或pop参数来重新获得它:
       git stash apply
       apply和pop命令之间的不同其实很简单。apply把隐藏状态找出来并加以运用,但在隐藏处还保持它原来的状态(相当于复制出来文件并加以运用,原来的安全存储区域不变)。pop命令会找到隐藏状态,加以运用,并且会把隐藏状态删除掉。git stash clear命令会把隐藏区域的内容清空。

转载于:https://my.oschina.net/weiweiblog/blog/518034

你可能感兴趣的文章
Cassandra监控 - OpsCenter手册
查看>>
《黑客与画家》读摘
查看>>
android 客户端 Cookie处理
查看>>
localtime与localtime_r
查看>>
Script to Collect Data Guard Diagnostic Information
查看>>
cell manager opening cell等待事件
查看>>
Autodesk 首届中国开发者夏令营将在6月19-20在北京举行
查看>>
Visual Studio 2012 Update 2 (KB2707250)
查看>>
MDX Step by Step 读书笔记(三) - Understanding Tuples (理解元组)
查看>>
Android 封装http请求的工具类
查看>>
黑书上的DP例题
查看>>
每天一个新标签/方法/属性/兼容性/问题
查看>>
《Linux内核设计与实现》读书笔记(九)- 内核同步介绍
查看>>
Delphi-IOCP 共同学习研究群号 320641073
查看>>
sql2008中已存在已有数据表修改主键为自增不让更改的解决方案
查看>>
控件路径自定义控件遇到的两个小问题
查看>>
【BZOJ】2648: SJY摆棋子 & 2716: [Violet 3]天使玩偶(kdtree)
查看>>
数据仓库与数据挖掘的一些基本概念
查看>>
Android学习系列(23)--App主界面实现
查看>>
jquery validate的漂亮css样式验证
查看>>