2019-07-12 git安装配置及常用指令 gitHub使用

1.全局安装git

Linux

sudo apt-get install git (适用于Debian或Ubuntu Linux)
sudo apt-get install git-core (适用于老一点的Debian或Ubuntu Linux)
对于其他Linux版本,先从Git官网下载Git ,官方地址为:https://git-scm.com/download/,下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装

Mac OS

方法1:安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/
方法2:更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

Windows

在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

配置信息
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

2.git常用指令:

git 克隆项目到指定目录

git clone 需要克隆的地址 指定的路径和文件夹名称(此文件夹必须为空,否则无法自动创建)
例如:git clone https://github.com/chenhuiYj/ec-dialog.git project-test/ec-dialog

git 初始化仓库

git init

git 指定要添加到本地仓库的文件(预备提交)

git add 文件名带后缀 (预备提交指定文件)
git add . (代表预备提交全部)
git add *.后缀名 (代表预备提交符合该后缀的文件)

git 查看提交状态

git status
会告诉你哪些文件是预备提交到本地仓库的,哪些文件是被修改/创建过还没有预备提交到本地仓库

git 删除预备提交的文件

git rm --cached 文件名带后缀
预备提交后再用git status查看状态显示该文件还没有预备提交

git 忽略预备提交的文件

方法1.创建一个 .gitignore配置文件
里面写上你要忽略的文件,例如:
123.txt  (忽略当前目录下123.txt 文件)
/dir1 (忽略dir1的文件夹)
/dir1/index.js (忽略dir1文件夹下的index.js文件)
保存后 git add .gitignore 这时候配置文件才会生效
这时候我们假如修改了123.txt的内容
再用 git status 查看状态并不会显示该123.txt文件是否预提交的状态,说明文件配置生效,已经忽略了该文件

注:这里有个坑需要注意下:设置后可能配置并不生效,是因为.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。即你所忽略的文件是没有被提交过的,那么如果还想忽略怎么办?
执行以下命令配置文件生效 :

git rm -r --cached . ; 
git add . ; 
git commit -m “update gitignore“

git 把预备提交的文件提交到git仓库

 git commit -m "你对此次提交操作的备注"

git 创建项目分支

 git branch "你的项目分支名称"

git 进入项目分支

 git checkout "你创建过的项目分支名称"

git 进入项目主线

 git checkout master

git 合并项目分支到主线

 git checkout master //进入主线
 git merge “你创建过的项目分支名称”
注:分支的概念

分支是用来标记特定代码的提交,每一个分支通过SHA1sum值来标识,所以对分支的操作是轻量级的,你改变的仅仅是SHA1sum值。
如下图所示,当前有2个分支,A,C,E属于master分支,而A,B,D,F属于dev分支。


image.png

它们的head指针分别指向E和F,对上述做如下操作:

git checkout master  //选择or切换到master分支
git merge dev        //将dev分支合并到当前分支(master)中

合并完成后:


image.png

现在ABCDEFG属于master,G是一次合并后的结果,是将E和F的代码合并后的结果,可能会出现冲突。而ABDF依然属于dev分支。可以继续在dev的分支上进行开发:


image.png

git 分支的基本操作:

git branch //查看本地所有分支
git branch -r //查看远程所有分支
git branch -a //查看本地和远程的所有分支
git branch <branchname> //新建分支
git branch -d <branchname> //删除本地分支
git branch -d -r <branchname> //删除远程分支,删除后还需推送到服务器
git push origin:<branchname> //删除后推送至服务器
git branch -m <oldbranch> <newbranch> //重命名本地分支

/**
*重命名远程分支:
*1、删除远程待修改分支
*2、push本地新分支到远程服务器
*/
//git中一些选项解释:
-d
--delete:删除
-D
--delete --force的快捷键
-f
--force:强制
-m
--move:移动或重命名
-M
--move --force的快捷键
-r
--remote:远程
-a
--all:所有

git fetch 用法

$ git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地

如果只想取回特定分支的更新,可以指定分支名:

$ git fetch <远程主机名> <分支名> //注意之间有空格

最常见的命令如取回origin 主机的master 分支:

$ git fetch origin master

取回更新后,会返回一个FETCH_HEAD ,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:

$ git log -p FETCH_HEAD

如图:


image

可以看到返回的信息包括更新的文件名,更新的作者和时间,以及更新的代码(19行红色[删除]和绿色[新增]部分)。
我们可以通过这些信息来判断是否产生冲突,以确定是否将更新merge到当前分支。

git pull 用法

前面提到,git pull 的过程可以理解为:

git fetch origin master //从远程主机的master分支拉取最新内容 
git merge FETCH_HEAD    //将拉取下来的最新内容合并到当前所在的分支中

即将远程主机的某个分支的更新取回,并与本地指定的分支合并,完整格式可表示为:

$ git pull <远程主机名> <远程分支名>:<本地分支名>

如果远程分支是与当前分支合并,则冒号后面的部分可以省略:

$ git pull origin next

git fetch和git pull的区别

(1)git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
(2)git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

3.git远程仓库GitHub使用:

流程原理图:


图片发自简书App

git 创建远程仓库

1、登陆、注册gitHub
2、点击这里创建新的远程仓库


image.png

3.设置远程仓库信息


image.png

git 初始化仓库

git init

git 清除旧的远程仓库连接

git remote rm origin

git 连接远程仓库

git remote add origin https://github.com/XXXX/XXXXX.git
会提示你输入账号密码,输入后可成功连接,成功连接后下次只要.git文件夹不删除不再需要重新连接

git 上传代码到远程仓库

git push -u origin master //上传主线代码
git push -u origin “分支名称” //上传分支代码
代码上传成功后,在github相关目录下会有你上传的文件

git 创建可以显示静态文件的个人主页仓库

image.png

仓库名称格式:username.github.io 注意与你的用户名一致
以上方法创建后,上传静态文件到该仓库用创建的这个地址访问底下的文件即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345