从零开始Git

@(关键字)[版本控制|git]

git.png

说明

按照此教程进行学习,可能因为机器或个人原因,中间会出现一些问题,不妨先参考文章末尾的一些问题总结.

一、注册github

注册地址:使用邮箱在github注册;

二、下载git并安装

  1. 下载地址:

两个链接都是可以的,第二个只需要选择windows版本即可。<哪个访问速度快,用哪个就好

  1. 安装下载下来之后,直接点击.exe文件,选择自己想安装到的目录,安装时,其他选项只需要选择默认的就好。在安装完成之后,在桌面空白处,点击鼠标右键,即可看到git bash heregit gui here两个选项。

  2. 配置(全部在git bash 中操作)点击右键,打开git bash here,之后输入以下命令:

$ git config --global user.name "Your github Name"
$ git config --global user.email "email@example.com"

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

1_global config.png

4. 将bash客户端与github关联起来

可参考 github help,按照步骤就可以将你的客户端和github账号联系起来
最后别忘了Testing your SSH connection

三、使用git的工作流程

使用git的工作流程及相关命令如下,分两类:

新建的项目

  1. 在github上New一个Repository

2_create_repository.png
2. 在本地的项目目录中点击右键,打开git bash窗口,输入命令:

git init \\初始化

:在输入上述命令之后,项目目录中会生成一个.git的隐藏文件夹。

3.提交项目文件到github中的仓库,首先需要将文件添加到git中:

git add logback.xml //添加logback.xml文件

4.提交文件,并加入注释

git commit -m 'logback.xml file commit' //提交更新,并注释信息“logback.xml file commit”

5.连接远程github项目

//连接远程github项目, 
git remote add origin git@github.com:sombie007/testGit.git

6.从远程获取最新的项目代码

git pull --rebase origin master

7.将本地项目更新到github上去

git push -u origin master //将本地项目更新到github项目上去

已存在的项目

  1. 克隆 Git 资源作为工作目录。
git clone git@github.com:facebookarchive/linkbench.git
  1. 在克隆的资源上添加或修改文件。
  2. 如果其他人修改了,你可以更新资源。
  3. 在提交前查看修改。
  4. 提交修改。
  5. 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

四、基本操作命令

  1. git查看提交历史
git log #打印提交历史
git log --oneline ##查看历史记录的简洁的版本
git log --oneline --graph #查看历史中什么时候出现了分支、合并,开启拓扑图选项;
git reflog #查看命令历史
  1. git版本回退/撤销修改/删除文件
#HEAD表示当前版本,HEAD^表示上一版本 
git reset --hard HEAD^   #回退到上一版本  
git reset --hard 8237462 #回退到commit id为8237462的版本
git checkout -- file #撤销file文件中的修改内容<未提交到暂存区时使用>
git check HEAD file  #暂存区的修改撤销掉
git rm file #删除file
  1. 分支管理
git branch    #查看当前有哪些分支,当前使用的分支前面会有*号
git branch <name>     #创建分支
git checkout <name>   #切换分支
git checkout -b dev   #创建dev分支,并切换到dev
git checkout master   #切换到master分支
git merge dev         #合并指定(dev)分支到当前分支
git branch -d dev     #删除dev分支
git branch -D dev     #强制删除dev分支```
4. 保存工作现场

git statsh #保存工作现场
git statsh list #查看保存的工作现场
git statsh apply #恢复工作现场
git statsh drop #删除工作现场
git statsh pop #返回工作现场,恢复的时候会同时删除statsh

5. 多人协作

git remote -v #查看远程库信息
git push origin branch-name #从本地推送分支,若推送失败,则使用git pull命令抓取远程的最新提交
git checkout -b branch-name origin/brance-name #在本地创建和远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name #建立本地分支和远程分支的关联


6. 标签管理

git tag #查看所有标签
git tag v1.0 #打一个新的标签
git show <tagname> #查看标签信息
git tag -a <tagname> -m "tag info" #创建指定标签信息的标签
git tag -s <tagname> -m "tag info" #创建带有PGP签名的标签
git tag -d <tagname> #删除tag
git push origin :refs/tags/<tagname> #删除远程的tag,在删除远程之前,需要删除本地的tag
git push origin <tagname> #强标签推送到远程
git push origin --tags #一次性推送所有的标签

7. 远程仓库

git remote #查看当前远程仓库
git remote #查看远程仓库的实际链接地址
git fetch #从远程仓库下载新分支和数据
git pull #从远端仓库提取数据并尝试合并到当前分支
git push <alias> <branch> #将自己的branch分支推送到alias远程仓库删的branch分支下
git remote rm <alias> #删除远程仓库

>**`git fetch`**与**`git pull`**的区别
>`git fetch`仅仅是将分支和数据get到,但是并不会merge到你本地所在的分支,所以在执行完`git fetch`后需要执行`git merge 远程分支`才可以到你所在的分支。
>`git pull`就是在执行 git fetch 之后紧接着执行 git merge 远程分支到你所在的任意分支


##踩过的坑
>>**`错误 1`**:在提交代码时,出现以下错误
>```
>$ git push -u origin masterfatal: unable to access 'https://github.com/sombie007/testGit.git/': SSL certificate problem: self signed certificate```
>**原因及解决方案**:windows中出现这种问题,可以在bash中输入以下命令解决问题
>```
>git config --global http.sslVerify false 
>```
>
>------
>>**`错误 2`**:在提交代码时候,出现以下错误
>```
>$ git push -u origin masterTo github.com:sombie007/SpringRain.git 
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'git@github.com:sombie007/SpringRain.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changeshint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.>```
>**原因及解决方案**:执行以下命令:
>```
>git pull --rebase origin master>git push origin master
>```
>**参考于**[stackoverflow](http://stackoverflow.com/questions/24114676/git-error-failed-to-push-some-refs-to)

##反馈与建议
非常感谢您阅读这份帮助文档。点击分享按钮,分享给更多的人呗。
- 微博:[\[@SombieFF\]](http://weibo.com/3178494643/profile?topnav=1&wvr=6)
- 邮箱:<shexd1001@gmail.com>
- 微信:WeChatId:wxxdong2102
--------
![wechat.jpg](http://upload-images.jianshu.io/upload_images/3269064-ed314734718e273a.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

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

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,645评论 4 54
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,672评论 1 17
  • 今天 get 到一个小技巧,很实用。 当一套响应式web (对网页浏览器做了适配,对iOS/安卓植入web也做了适...
    大胆造轮子阅读 635评论 0 3
  • 每日一我 迷瞪迷瞪六点左右早来。十几秒做好苹果汁,起床上班。 今天是阴天,估计空气中水分太多,总有水雾往身上飘的 ...
    sophietyl阅读 232评论 0 0
  • 啊啊啊啊嗯嗯嗯很搞笑了恶魔妈妈买面膜 日子 过的 怎么说 一般般吧 表面风平浪静 内心草泥马呼啸而过 大概是自己性...
    之余兮阅读 204评论 0 0