Git——常用场景解析

总结:本篇文章从初识GitHub、Git,实践GitHub的五种常用场景,分别是:git for windows安装,git配置,克隆远程代码到本地,上传本地代码到远程以及Git的常用指令。相信James已经尝到了Git的滋味。

Git是什么?是版本控制工具,是协同开发的利器。

“版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统;对于软件开发领域来说,版本控制是最重要的一环。”

如何使用呢?首次接触Git时,James认为:大可不必去弄清楚Git的工作原理,只需要熟练掌握Git的几种应用场景即可。

其实James最先了解的是github,一些高端的开源项目都会发布到该平台,James很期待自己也能有所贡献和提高。提到github,主要提供基于git的版本托管服务平台(也就是远程端);Github上托管的所有项目代码都是基于Git来进行版本控制的,但Github的功能远不止于此。因此,为了将github上的开源代码“克隆”到本地(即:James的电脑),需先在github上注册账号。

场景一:git for windows的安装

从标题即可看出,James使用的开发平台是Windows(具体是:Windows 7;James手上还没有什么银子!)。

git for windows下载:https://git-scm.com/ Windows平台下的最新版本是2.9.0 更新时间:2016/06/13。

相信大伙都精通软件安装,James也一样,一路next即可。

场景二:git相关配置

James暂时还不清楚为什么需要进行配置,但他会baidu和goole。

首当其冲的是:密钥

$ cd ~/.ssh  含义:切换目录到.ssh;~表示根目录,C:\User\James\.ssh

没错,James就是使用命令行来进行操作的;James是处女座,内心深处有强烈的危机感(需要搞清楚每一步骤的具体含义和结果)。希望你也喜欢使用命令行!

如果提示:No such file or directory,说明是第一次使用git;也就是还没有生成相应的密钥;如果已经有文件,还会涉及到清理密钥的代码指令。

ssh-keygen -t rsa -C "[email protected]" // 填写注册github时的email

一直回车即可(中途会提示设置passphrase,暂时忽略吧),此时就会生成:C:\Users\James\.ssh目录,新增两个文件:id_rsa和id_rsa.pub。

其次,需要本地生成的密钥提供给github(James认为,是一种访问匹配的过程)。

登录github,点击James的图片,点击Setting栏,找到SSH and GPG keys,点击new SSH key,将本地的生成的id_rsa.pub内容复制到key的部分中,执行Add SSH key即可。

经过以上多个步骤,James还需要测试密钥。

$ ssh -T [email protected]

如果提示以下内容时,输入yes即可。

The authenticity of host ‘github.com (192.30.252.129)‘ can‘t be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes

这个时候就会出现令James欣喜的文字:

Hi ZHANGfeng-james! You‘ve successfully authenticated, but GitHub does not provide shell access.

最后,还需要设置用户信息(不过James还不知道其中的缘由)

$ git config --global user.name "ZHANGfeng-james" // 填写github用户名
$ git config --global user.email "[email protected]" // 填写github注册时的email

场景三:克隆远程代码到本地

James尝试读懂开源框架的源代码,就以xUtils为例(最新的是xUtils3)吧!Search到“星星”数最多的那个xUtils,然后fork即可,相当于复制了一份源代码到自己的仓库中(新建了一个同名的仓库)。

步骤一:在本地新建和仓库名同名的文件目录

$ mkdir ~/xUtils

Linux的常用命令:新建文件夹——mkdir,James相信具有互联网思维的你,知道如何找到这些常用命令。

步骤二:进入到该文件目录,进行清理操作(为什么要清理?)

$ cd ~/xUtils
$ git init

可以看到提示信息:

Initialized empty Git repository in C:/Users/James/xUtils/.git/

步骤三:执行拷贝

$ git clone https://github.com/ZHANGfeng-james/xUtils.git

进入到你fork的仓库中,拷贝浏览器中的地址:https://github.com/ZHANGfeng-james/xUtils,并在其后添上.git即可。此外还有另外中方式:

$ git clone [email protected]:ZHANGfeng-james.com/xUtils.git

均可实现代码拷贝。

Cloning into ‘xUtils‘...
remote: Counting objects: 7582, done.
remote: Total 7582 (delta 0), reused 0 (delta 0), pack-reused 7582
Receiving objects: 100% (7582/7582), 15.49 MiB | 19.00 KiB/s, done.
Resolving deltas: 100% (3242/3242), done.
Checking connectivity... done.

看到以上信息,就说明已经将远程代码拷贝到本地了。

James成功了。

场景四:上传本地代码到远程

上传本地代码到远程(即github),是很常见的应用场景,James认为这个必须会。

首先在github上新建UploadDemo仓库(很显然,James觉得这是很基础的操作)。

其次在Git Bash中切换到本地项目(此时我新建项目文件:UploadDemo)的根目录,即类似于:C:\Users\James\UploadDemo目录,执行以下代码:

$ git init

将本地项目中的所有文件添加到仓库中,即需执行以下代码:

$ git add .

其中上述的:. ,代表的是项目根目录下的所有文件。但为什么会出现以下警告信息:

warning: LF will be replaced by CRLF in Picasso_project2/.gitignore.

James并不是很清楚。出现了很多文件信息,可能预示遍历了目录下的所有文件…

将add的文件commit到仓库中:

$ git commit -m "Picasso_project2" // 其中"Picasso_project2"是注释部分

最后,将本地仓库关联到github上:

$ git remote add origin [email protected]:ZHANGfeng-james/UploadDemo.git // 其后是github上对应项目的仓库地址

但此时出现以下错误:

fatal: remote origin already exists.

但这难不倒James,因为有baidu和google呀!

$ git pull origin master

James发现上述执行的代码中有关键线索:origin和master,而master恰好是github仓库的主分支。但此时James仍不知道为什么。

而后执行代码上传逻辑:

$ git push -u origin master

中途还弹出对话框,让James提供github的账号和密码。

此时,就完成了本地代码上传的功能:

场景四:Git Bash常用指令

git status // 查看当前仓库状态

该指令是最最常用的操作,相当于对之前的操作进行状态查询。

git init // 初始化当前路径所在的仓库

如果在本地新建了文件目录,但在Git看来还不是一个代码仓库,需要进行初始化,也就是需要用到上述指令。执行“git init”指令后,默认会生成一个主分支master,是实际开发正式环境下的分支,一般情况下不会在master分支中改动代码。

git add filename.txt // 添加filename.txt文件到缓冲区

该指令现将仓库的改动添加到Git的暂存区,临时保存改动。

git commit -m ‘filename.txt commit‘

该指令将暂存区的改动提交到仓库,也就是仓库记录了此次改动;其后的-m表示提交的信息:filename.txt commit。

git log // 输出commit记录
输出所有提交的commit。
git branch branchname // 新建branchname分支

分支branch的概念应用在团队协作上,个人工作在自己不同的分支branch上,对master分支不造成破坏且相互之间也不影响。

git branch // 查看仓库所有分支

输出结果中,有前置*的为当前所在分支,也就是说接下来的改动将会在该分支上进行,不会影响其他分支。

git checkout branchname // 切换到branchname分支

在切换之后的分支上进行操作。

git checkout -b branchname // 新建并切换到指定分支

该指令为以上两个指令的复合。

git branch -d branchname // 删除branchname分支

有新建分支指令,同样也有删除分支的指令。

git tag tag_content // 为当前代码设置标签

这篇文章写到这,后续还有更加深入的问题等待着James(前面好像还有问题没有解决哦!James童鞋没有忘记)

时间: 2024-10-27 06:48:28

Git——常用场景解析的相关文章

Git 常用场景操作

git init 在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹. git clone 获取一个url对应的远程Git repo, 创建一个local copy. 一般的格式是git clone [url]. clone下来的repo会以url最后一个斜线后面的名称命名,创建一个文件夹,如果想要指定特定的名称,可以git clone [url] newname指定. git status 查询repo的状态. git

git常用命令常用场景

在使用git之前,一直用的是svn版本管理:与svn最大不同的是,git有两个仓库,一个是本地仓库,一个是服务器上共享的仓库:本地仓库是每个开发者自己独有的,即使commit提交也只是提交到本地仓库:这只是git流行起来的一个优势之一,另外linux作者开发的这套版本管理工具,很接地气,也是流行起来的一大亮点.扯了这么多没用的,言归正卷,那么在日常开发工作中,哪些git命令是我们常用到的呢?下面就说说几个常用命令的常用场景,至于这些命令详细使用就不在本文讨论之内. 1.git命令别名 使用过gi

git 常用操作命令

记录下工作中,常用的Git命令操作,一个项目经常是多人协作开发,使用好git是开发人员必备的技能,下面记录下一些基本的git操作,后续会记录git解决冲突,合并分支,回滚,tag操作等. 克隆项目 - git clone: git clone https://test.git 克隆完项目后,如果需要切换到指定的分支branch,需要执行: git branch -a #查看项目下有哪些分支 git checkout dev-test #切换到dev-test分支 git branch # 分支名

最全面 Nginx 入门教程 + 常用配置解析

转自 http://blog.csdn.net/shootyou/article/details/6093562 Nginx介绍和安装 一个简单的配置文件 模块介绍 常用场景配置 进阶内容 参考资料 == Nginx介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx以其高性能.稳定.功能丰富.配置简单及占用系统资源少而著称. Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx

git常用指令整理及说明(详细)

git常用指令整理及说明(详细) git常用指令整理及说明详细 安装和配置 工作区版本库和暂存区 本地库和远程库 新建仓库 从远程库克隆 常用查看指令 常用修改指令 撤销修改和版本回退 分支管理 创建和合并分支 解决冲突 bug分支 远程分支 优秀教程笔记 本文是git系列博客的第二篇.本文对指令按照使用场景(建库,查看,修改,分支)进行分类归纳,介绍指令基本含义和用法,方便查阅. 安装和配置 参考我前面的博客:git在各操作系统平台下的安装和配置 工作区.版本库和暂存区 工作区:就是你在电脑里

Git常用操作指南

目录 前言 Git简介 安装之后第一步 创建版本库 本地仓库 远程仓库 版本控制 工作区和暂存区 版本回退 撤销修改 删除文件 分支管理 创建与合并分支 解决冲突 分支管理策略 状态存储 多人协作 Rebase 标签管理 创建标签 操作标签 自定义Git 忽略特殊文件 配置别名 配置文件 总结 前言 因为工作需求,最近又重新温习了一下Git操作,遂总结了一篇Git常用操作指南,方便日后学习查阅,本博客精简提炼了在开发过程中Git经常用到的核心命令,主要参考了<廖雪峰老师的Git教程>,希望对大

Git原理入门解析

前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的: 一.Git 简介 Git 是当前流行的分布式版本控制管理工具,最初由 Linux Torvalds (Linux 之父) 创造,于 2005 年发布. Git,这个词其实源自英国俚语,意思大约是 “混账”.Linux 为什么会以这样自嘲的名字来命名呢?这其中还有一段儿有趣的历史可以说一说: 以下摘自:https://www.liaoxuefe

【前端小小白的学习之路】Git常用命令整理

Git 常用命令清单. 几个专用名词的译名如下: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url] 二.配置 Git的设置文件为.gitconfig,它可以在用户主目录下(全局

git常用命令2

git常用命令2 添加远程仓库(以github为例) 登录官方网站https://github.com,没有的话去注册一个账号吧. 然后新建一个仓库 在Repository name填入learngit,其他保持默认设置,点击"Create repository"按钮,就成功地创建了一个新的Git仓库: 目前,在GitHub上的这个learngit仓库还是空的,GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHu