git必备知识与基本操作(非原创)

  1. 首先gitgithub不是同一个东西。Git是一款免费、开源的分布式版本控制系统,而github是基于git代码托管平台且同时也具有版本记忆功能。

  2. git是分布式版本管理系统。

  3. git是由linux的创造者linus开发的。

  4. 不同于CVSSVN的集中式版本控制方式,git使用分布式进行版本控制。将较而言,git分布式版本控制可以实现本地化的版本库,工作时不必联网;git具有强大的分支管理能力,稳定性更高。(便捷)


git首次安装后的设置:

首先打开hash.exe输入用户名和邮箱

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

利用git本地仓库进行版本控制可以简单的理解为:a 持有实际文件的物理工作目录,b 暂存区,c 本地仓库(git在本地默认建立的一个master分支)

其中a-->b是由add实现,而b-->c是由commit实现。

利用git在本地进行版本库存储:

  1. git在本地指定地点建立仓库(或者是指向克隆下来的仓库):

     cd e:/github_projects/tisikcci.github.io
    
  2. 初始化一个git仓库:

    git init
    

初始化之后,会在tisikcci.github.io文件夹下生成一个默认隐藏的.git文件夹

  1. 向这个隐藏的文件夹中添加文件:README.md(可以是别的文件,要将这个文件放在.git同级文件夹下):

    git add README.md
    

也可以一次添加多个文件,类似于:

    git add README1.md README2.md README3.md
  1. 将文件存入本地仓库(当前分支),同时添加改动或者说是更新说明:(-m后这里的‘first commit’应该是与本次提交或者更新有关系有实际意义的说明,方便以后溯源)

    git commit -m'first commit'
    
  2. 在上面的3,4步骤过程后可以使用以下命令看到内容的变动

    git status
    
  3. 可以使用以下代码查看git版本库的修改或者说是更新次数(使用q可以退出这个命令)

    git log
    

如果觉得这样得到的信息太多,可以使用下面的命令,使得每次修改信息漂亮的显示在同一行

git log --pretty=oneline

也可以选定查看最近2次的版本更新信息:

git log -n 2
  1. 可以利用reset实现版本回退:

    git reset --hard head^

注意:HEAD表示当前版本(就是一个指针),在后面加一个^,表示(指向)上一个版本,前第N个版本是HEAD~N,

回退以后想恢复之前最新的版本或者是某次特定的版本,可以利用如下代码查找操作代码库的关键步骤历史记录的ID实现:

git reflog

根据ID,比如是441736f,前进到回退前的某个版本

git reset --hard 441736f

8.commit之后又对项目中的某个文件内容进行了更新,可以利用以下命令回到离commit最近的状态(就是丢弃掉没有进行add操作的更改内容,回到上次commit操作时的状态)

    git checkout -- 文件名 

这里本质是利用本地版本库中的相同文件替换了本地文件夹中的文件,所以看起来是回到之前commit操作时的状态了(但是如果更改已经add了,除非放弃add操作内容,否则下次commit又会更新本地仓库)

更进一步,撤销已经add到暂存区但没有commit到本地分支的文件

it reset head 文件名

以上过程中可以使用以下命令查看具体文件的内容

  cat 文件名
  1. 删除本地版本库中的文件

首先说一下一种特殊情况:本地的文件夹中的项目相关文件被删除了,但没有更新本地的版本库,如果这时想恢复被删除的项目相关文件,可以利用以下命令:

  git checkout -- 文件名

第二种情况是真的想删除本地仓库中的相关文件,利用以下代码删除本地文件夹中的文件(也可以手动删除)

rm 文件名

然后利用以下代码删除本地仓库中的文件

 git  rm 文件名

并且利用git commit进行保存

 git commit -m"remove 文件名"
  1. 新建一个分支,可以利用

     git branch 分支名
     git checkout 分支名
    

上面的代码分别表示新建一个分支,并将head(指针)指向新建的指针

也可以使用下面的方式直接实现新建一个分支并使head指向它

  git checkout -b 分支名

可以利用下面的命令分别查看本地分支,远程分支和所有分支,当前指向分支前会加*号

git branch<br>git branch -r<br>git branch -a

删除已经存在的指定本地分支,远程分支(注意要先将指针指向其他分支才能删除此分支)

git branch -d 分支名
git push origin :分支名

重命名分支

git branch -m 原分支名 新分支名
  1. 在新分支上提交内容,对之前的主分支master并不会有影响,可以利用如下方式再切换回主分支
git checkout master

此时head会重新指向master,将master替换为别的分支,可以实现切换到任意指定分支

  1. 将新建立的分支合并到主分支(首先要切换回主分支)

     git merge 新分支
    

合并后,就可以利用上面给出的方法删除新分支

  1. 如果想保留新建的分支,并推送到远程仓库,可以利用

     git push origin 新建的分支
    
  2. 可以给项目进度添加版本号,通过添加标签的方式实现

     git tag 版本号
    

通过省略版本号可以直接查看已经添加的版本号

    git tag

可以给以前的某次提交补加版本号,只要查找到之前commit操作对应的ID,比如:441736f

git tag 版本号 441736f

可以利用如下的方式实现在添加标签时添加说明

git tag -a 版本号 -m "版本说明"

可以通过以下命令查看指定版本内容

git show 版本号

删除不想要的标签

git tag -d 已经存在的标签(版本号)

可以将本地标签推送到远程仓库

git push 远程主机名(比如origin) 版本号

比如:

git push origin v1.0

将本地所有的版本号都推送到远程仓库

git push origin --tags

如果想删除远程仓库的版本号,需要进行两步

a. 首先要删除本地版本号(标签)

b.再删除远程版本号

git push origin :refs/tags/版本号

利用以上步骤,基本可以实现利用git本地进行操作,以下要实现将本地git仓库同步到远程仓库(例如github,当然也可以自己在一台PC上搭建一个服务器,作为远程仓库)

利用github充当远程仓库是一种很不错的方式,git本地仓库和github可以通过SSH加密,利用多种方式进行数据传输:HTTP(s)、SSH、Git、本地协议等,前两种比较常用。


1.要想将本地仓库同步到Github上,首先需要建立本地和Github上使用的SSH私钥和公钥,在git的bash.exe中输入

  ssh-keygen -t rsa -C “tisikcci@foxmail.com”
  1. 在电脑上生成公钥和私钥,将公钥上传到github上
    登录Github,找到右上角的图标,打开点进里面的Settings,再选中里面的SSH and GPG KEYS,点击右上角的New SSH key,然后Title里面随便填,再把刚才id_rsa.pub里面的内容复制到Title下面的Key内容框里面,最后点击Add SSH key,这样就完成了SSH Key的加密

  2. 测试是否连接成功

    ssh -T git@github.com
    
  3. 在Github上建立一个你想和本地仓库进行同名的仓库(名字相同)

  4. 利用上面的cd...指向本地仓库的位置,然后关联到Github的远程仓库:

    git remote add origin git@github.com:tisikcci/tisikcci.github.com.git
    
  5. 关联好之后,可以把本地仓库中的内容推送到Github上的远程仓库了

在首次进行推送的时候,需要:

git push -u origin master

此处加 -u 是用来将本地master和远程master进行关联的,以后再次推送就不需要再加了,origin是远程主机的名字,可以通过以下代码来查看

git remote

或者是

git remote -v

这个主机名字是可以人为指定的。

首次推送之后,下次再向远程仓库master分支推送项目时,只需要

git push origin master
  1. 上面提到可以人为指定远程主机的名字,在将远程仓库克隆到本地的时候,可以实现

     git clone -o 新主机名 https://github.com/tisikcci/first-static-web-page.git/
    

如果使用默认的主机名并且克隆到本地指定的位置,可以利用

git clone https://github.com/tisikcci/first-static-web-page.git/ 本地地址

最好是直接利用SSH协议进行clone,如下

git clone 仓库的SSH地址  本地建立的空文件夹地址
git clone git@github.com:tisikcci/test.git e:/github_projects/zz

就将远程仓库的test克隆到了本地的zz文件夹中。


参考链接:
http://www.cnblogs.com/tisikcci/p/5684841.html

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

推荐阅读更多精彩内容

  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,645评论 4 54
  • 因为制片人的下跪,我才知道了《百鸟朝凤》,习惯性的去豆瓣电影看评分。8.2分?这算是一个相当高的分数,可仔细一看下...
    寒亦可1314阅读 323评论 0 1
  • 本非薄情人 奈何人情薄 ——题记 如果我们之间没有那点血缘关系 你...
    瓊楼小閣主阅读 574评论 0 0
  • 最近,看稻盛和夫的《活法》,看到这句:做为人,何为正确。说的是,作者在创办京瓷公司的初期,没有经营的经验,所以作者...
    践行而生阅读 449评论 1 3
  • 没有被伤害过的人,就不知道世界上那么多愤世嫉俗的人都是怎么来的。英雄主义就是认清了生活的真相之后依然热爱生活!说这...
    秋笏笑月阅读 302评论 0 5