赞
踩
本文以Windows平台为例,简要说明如何使用本地仓库Git和远程仓库Github。
我们需要澄清的概念
1、本地仓库:通过本地安装的Git软件管理的构建的git仓库
2、远程仓库:指的在github上构建的仓库(本文以github远程仓库为例,不涉及其他远程仓库)
在使用Git前,我们需要先安装 Git,Windows版Git工具下载地址如下,
国内镜像:https://npm.taobao.org/mirrors/git-for-windows
Window版Git安装比较简单,本文不在赘述。
安装完成后,就可以鼠标右键看到Git命令行工具Git Bash或者Git图形界面工具Git GUI。
要使用Git前,首先需要建立一个Git仓库。您既可以使用一个已经存在的目录,也可以使用一个空目录作为Git仓库。
本文新建一个myGit空目录(概念1:Git工作区)作为Git仓库,为大家介绍Git使用。鼠标右键弹出菜单,选择Git Bash Here, 打开Git命令行窗口。
注意:以下所有步骤操作全部在Git命令行窗口进行,后续不再赘述。
//1.新建目录:新建一个myGit空目录作为Git仓库 mkdir myGit cd myGit //2.创建Git仓库:在myGit目录下执行以下命令,创建一个本地git仓库 git init
创建完成后,在myGit目录下多了一个.git文件夹,说明本地Git仓库构建成功。
注意:本章节讲解的是本地仓库Git,与github远程仓库无关,这也是不少人容易混淆的地方之一。
建立Git仓库的目的是对文件的不同版本进行管理,我们可以打开myGit目录,添加一个文件,比如hello.txt,之后可以通过add命令向Git仓库暂存区添加文件(概念2:Git暂存区)。
//3.添加文件:add命令添加文件到Git暂存区。注意add后面有个点. //一次添加一个文件 git add hello.txt //一次添加所有文件 git add .
完成步骤3,文件信息被放到Git仓库暂存区,还要通过commit命令才能把文件真正保存到Git仓库
//4.提交版本:将暂存区内容保存到本地仓库中 git commit -m"add hello.txt" //或者,我们一次修改了很多文件,又不想每一个都add,就可在commit中使用-a标识完成自动提交本地修改 git commit -a -m "add hello.txt" //注:-a不会造成新文件被提交,只能修改。
通过以上4个步骤,我们实际上已经实现了本地文件版本简单管理。
在git bash命令行窗口中执行了git init,我建的本地仓库myGit就默认创建一个master分支,我们就可以在master分支上开展工作。当我们的工作进行到一个阶段,我们想对完成的工作内容打一个新版本,比如v1.0.0,这时,我们就可以在主分支master基础上,创建一个分支v1.0.0,然后,在分支v1.0.0上工作。也可以根据需要,在在不同分支master、v1.0.0上来回切换。
//1. 创建分支 git branch v1.0.0 // or 本地库添加并切换到新分支 git branch -b v1.0.0 //2. 切换分支:切换到分支v1.0.0,新增加一个v1.txt文件,之后执行 add commit 命令,之后再切换到master分支,查看myGit目录内容变化,体会不同分支对文件内容管理影响。 git checkout v1.0.0 //3.列出所在分支 git branch * master //本地master分支 *表示目前所在分支 v1.0.0 //本地v1.0.0分支 //4.合并分支v1.0.0内容到master分支 git checkout master git merge v1.0.0 //5. 删除本地分支 git checkout master git branch -d v1.0.0
需要明确的是不同分支,代表本地不同工作目录,使用分支切换命令,切换分支,看看工作目录myGit中内容变化,体会分支的作用。
我们也可以通过status、diff查看本地仓库状态,比较文件不同。
//查看本地仓库当前的状态,显示有变更的文件 git status //比较文件不同,即比较工作区与暂存区内容的差异 git diff //or 比较某一个文件的不同 git diff xxx.yy
当然,Git命令还有很多,有兴趣的可以查看官网手册
到目前位置,我们使用 的Git 命令都是在本地执行,都是在操作本地Git仓库,我们的内容还都存储在本机,我们还没有走出去。如果我们想把我们构建的内容与他人分享,我们就需要将内容推送到一台其他人员也能够连接的git远程仓库上。
本文以github作为远程仓库,说明如何实现本地仓库Git与远程仓库Github互动。
如何注册github账户,请参见官网,本文不再赘述。
在github上创建git仓库,名字为: myGithub
通过remote add命令,就在本地仓库myGit与远程仓库github上myGithub仓库建立了关联,就可以向github提交或者从github上拉取数据内容。
//连接远程仓库:在本地仓库myGit中执行以下命令,让本地仓库与远程仓库建立连接 #格式:git remote add [shortname] [url] git remote add mygod git@github.com:<your username>/myGithub.git //注:mygod 为远程仓库的别名,可以任意起名
我们可以通过remote -v 命令显示本地仓库myGit与哪些github上的仓库有关联,注意啊,可以是多个仓库。
//显示与本地仓库myGit相关的所有远程仓库, git remote -v mygod git@github.com:<username>/myGithub.git (fetch) mygod git@github.com:<username>/myGithub.git (push) //修改远程仓库的别名 #格式:git remote rename old_name new_name # 修改仓库名 git remote rename mygod mg //删除本地仓库关联的远程仓库,注意啊,不是删除github上的仓库 git remote rm mg # 删除远程仓库 git remote -v # 因为已经删除,返回结果为空 //重新添加远程仓库 git remote add mygod git@github.com:<username>/myGithub.git
如果github上仓库已经有多个分支,比如一个开源库,别人已经建立了多个分支,我们想把指定的分支拉取到本地仓库myGit中,怎么办,就可以通过一下命令实现指定分支的拉取。
//从github拉取指定的分支 #格式:git pull [shortname] <远程分支名>:<本地分支名> git pull mygod v1.1.2:v1.1.2 //or git pull mygod v1.1.2 // 查看本地分支 git branch
pull成功后,本地会多出一个分支v1.1.2
如果我们想把本地仓库myGit 指定分支内容提交到github上,就需要使用push命令
//推送本地仓库myGit指定分支内容到github上 # git push <远程主机名> <本地分支名>:<远程分支名> # git push <远程主机名> <本地分支名> #如果本地分支名与远程分支名相同,则可以省略冒号 git push mygod :v1.1.2 #如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数: git push --force v1.1.2 v1.1.2
如果远程仓库github上myGithub仓库,指定的分支已经不在使用,我们可以通过一下命令删除指定分支。
# 删除github上 myGithub仓库的v1.1.2分支 git push mygod --delete v1.1.2
到此为止,本文已简略说明Git 及 Github的日常使用命令,若想更深入使用Git 和Github仓库,请查看官网手册
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。