今天使用Git&github&ST3时,发现ST3不仅是git插件不能push成功,使用sublimegit插件也不行。

可能是没有掌握sublimegit的使用技巧,有待后续继续摸索。

暂时只考虑使用ST3在本地更新项目,直接使用git的bash.exe完成push到github。

***************************************************************************************************************************************************

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

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

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

4.不同于CVS和SVN的集中式版本控制方式,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在本地进行版本库存储:
(打开D:/Git/bin/bash.exe)

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

cd e:/github_projects/tisikcci.github.io

2.初始化一个git仓库:

git init

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

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

git add README.md

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

git add README1.md README2.md README3.md

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

git commit - m'first commit'

5.在上面的3,4步骤过程后可以使用以下命令看到内容的变动

git status

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

git log

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

git log --pretty=oneline

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

git log -n 2

7.可以利用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 文件名

9.删除本地版本库中的文件

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

git checkout -- 文件名

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

 rm 文件名

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

git  rm 文件名

并且利用git commit进行保存

git commit -m"remove 文件名"

10.新建一个分支,可以利用

git branch 分支名
git checkout 分支名

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

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

git checkout -b 分支名

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

git branch
git branch -r
git branch -a

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

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

重命名分支

git branch -m 原分支名 新分支名

11.在新分支上提交内容,对之前的主分支master并不会有影响,可以利用如下方式再切换回主分支

git checkout master

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

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

git merge 新分支

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

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

git push origin 新建的分支

15.可以给项目进度添加版本号,通过添加标签的方式实现

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”

2.在电脑上生成公钥和私钥,将公钥上传到github上

3.测试是否连接成功

ssh -T git@github.com

4.在Github上建立一个你想和本地仓库进行同名的仓库(名字相同)

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

git remote add origin git@github.com:tisikcci/tisikcci.github.com.git

6.关联好之后,可以把本地仓库中的内容推送到Github上的远程仓库了

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

git push -u origin master

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

git remote

或者是

git remote -v

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

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

git push origin master

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

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.yiibai.com/git/

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

使用git向github中添加项目并更新(备忘录)的更多相关文章

  1. 使用git处理github中提交有冲突的pull request

    前言: 为什么要写这篇文章,因为前段时间有一个开源的github中的项目有一个朋友提交了一个pr看了下是帮忙优化了下代码(十分感谢这位网友).但是他提交的pr刚好和我的项目有许多的冲突导致无法自动合并 ...

  2. 用Git向gitHub上传项目

    用Git向gitHub上传项目 1.安装git 2.在git安装目录下,运行git-bash.exe  如图所示 3.在git中绑定你注册gitHub是的用户名.邮箱. $ git config -- ...

  3. Github 中提交项目到自己仓库的 gh-pages 分支

    Github 中提交项目到自己仓库的gh-pages分支 cd cnblogs-theme/ git init git remote add origin git@github.com:hglibin ...

  4. 如何将 GitHub 中的项目导入到 stackblitz.com 中

    如何将一个 GitHub 中的项目导入到 stackblitz.com 中,然后开始编辑和编译呢? 例如,我们有一个项目在 GitHub 中的地址为:https://github.com/cwiki- ...

  5. eclipse 本地项目提交到远程库以及从远程库中添加项目 ---git

    本地项目提交到远程库 1.右击项目->team->share project 2.选择本地库 从远处库中的项目拉到本地 1.右击项目->import项目

  6. 使用git管理github上的项目

    使用git可以把我们的项目代码上传到github上面去,方便自己管理,如何使用git?觉得是每位程序猿所必需要有的谋生技能,所以在此记录一下自己学会使用的这个过程: 一.需要注册github账号,这样 ...

  7. 在eclipse上使用github,向github中提交项目

    1.下载egit插件 打开Eclipse,git需要eclipse授权,通过网页是无法下载egit的安装包的.在菜单栏依次打开eclipse→help→install new software→add ...

  8. 使用git克隆github上的项目失败,报错error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

    错误描述 今天在github上使用 git clone 某个项目代码的时, git clone https://github.com/XXXX/xxx-blog.git 下载速度很慢,然后下载一段时间 ...

  9. VS2010在空解决方案中添加项目

    如题,在空解决方案中添加第一个项目的时候会看不到那个solution解决方案文件,而是你当前添加的项目,当你再添加其他项目的时候就悲催了,找不到这个solution,只能在这个项目文件上新加文件,很郁 ...

随机推荐

  1. android学习笔记38——样式和主题

    Style.Theme 样式和主题资源都是用于android应用的美化操作. 样式:一组格式的集合,可重复使用. android的样式资源存放与res/values文件夹下,其根元素为<reso ...

  2. 如何重装air

    参考这里 很多年没有装过系统了,手贱用xxcleaner清理了下,好吧,我觉得只能重装了,直接贴过程吧 ,开机同时command+R,进入菜单 ,抹掉磁盘 ,重启,等在线更新(看各位运气了,网速好的话 ...

  3. sublime安装DocBlockr注释插件

    点击sublime的菜单栏 view->show console :现在打开了控制台, 这个控制台有上下两栏, 上面一栏会实时显示sublime执行了什么插件,输出执行结果, 如果你安装的某个插 ...

  4. Redis配置文件解读

    转载自:http://www.cnblogs.com/daizhj/articles/1956681.html 对部分配置选项做了一些说明 把配置项目从上到下看了一遍,有了个大致的了解,暂时还用不到一 ...

  5. OAF_EO系列6 - Delete详解和实现(案例)

    2014-06-14 Created By BaoXinjian

  6. UI设计原则

    一.一般原则 简单明了原则: 方便使用原则: 用户向导原则: 实时帮助原则: 自定义功能原则: 界面色彩原则: 二.Web系统适应原则 页面要瘦小 屏幕自适应 浏览器兼容 减少垂直滚动条 禁止水平滚动 ...

  7. Weblogic重启(转载)

    1.用户名密码登录. 2.切换到weblogic的bin目录下: cd /user/local/weblogic/user_projects/domains/base_domain/bin/ 3.先停 ...

  8. bootstrap-响应式图片、辅助类样式

    响应式图片: <div class="container"> <!-- img-responsive 响应式图片 --> <div class=&qu ...

  9. Objective-C: 字符串NSString与NSMutableString

    字符串算是OC中非常重要和常用的一部分内容,OC中的字符串与我之前在学习C,C++,Java中的字符串有一定的不同,它非常类似于C++中容器的概念,但用法却与之还是有很大的不同,也许是因为OC的语法就 ...

  10. Gatling的进阶二

    1. 参数化     Gatling可以很方便使用csv文件进行参数化,例如一个用户信息表:   /* user_information.csv */ username,password,accoun ...