Github 与 git 的使用详解

这个教程呢,有几个部分先和大家说一下:

  • Git 本地仓库详解

  • Git 远程仓库详解

  • Git 分支管理详解

  • Git 标签管理详解

  • GitHub 使用详解

  • Git 全局配置详解

  • Git与GitHub总结

   还有这篇文章,结合着看:Git 本地仓库(Repository)详解

 和这篇:  Windows平台使用TortoiseGit+MSysGit同步项目到Github ;  

【如何使用】

1.注册账户以及创建仓库
要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。

2.安装客户端msysgit
github是服务端,要想在自己电脑上使用git我们还需要一个git客户端,我这里选用msysgit,这个只是提供了git的核心功能,而且是基于命令行的。如果想要图形界面的话只要在msysgit的基础上安装TortoiseGit即可。

装完msysgit后右键鼠标会多出一些选项来,在本地仓库里右键选择Git Init Here,会多出来一个.git文件夹,这就表示本地git创建成功。右键Git Bash进入git命令行,为了把本地的仓库传到github,还需要配置ssh key。

3.配置Git

首先在本地创建ssh key;

[plain]  view plain copy print ?
  1. ssh-keygen -t rsa -C "your_email@youremail.com"  



后面的 your_email@youremail.com 改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。

回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。为了验证是否成功,在git bash下输入:

[plain]  view plain copy print ?
  1. $ ssh -T git@github.com  

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。

接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。

[plain]  view plain copy print ?
  1. $ git config --global user.name "your name"  
  2. $ git config --global user.email "your_email@youremail.com"  

进入要上传的仓库,右键git bash,添加远程地址:

[plain]  view plain copy print ?
  1. $ git remote add origin git@github.com:yourName/yourRepo.git  

后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。

4.提交、上传

接下来在本地仓库里添加一些文件,比如README,

[plain]  view plain copy print ?
  1. $ git add README  
  2. $ git commit -m "first commit"  

上传到github:

[plain]  view plain copy print ?
  1. $ git push origin master  

git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。

修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。

5.gitignore文件

.gitignore顾名思义就是告诉git需要忽略的文件,这是一个很重要并且很实用的文件。一般我们写完代码后会执行编译、调试等操作,这期间会产生很多中间文件和可执行文件,这些都不是代码文件,是不需要git来管理的。我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。这时我们就需要.gitignore了。比如一般c#的项目我的.gitignore是这样写的:

[plain]  view plain copy print ?
  1. bin  
  2. *.suo  
  3. obj  

bin和obj是编译目录,里面都不是源代码,忽略;suo文件是vs2010的配置文件,不需要。这样你在git status的时候就只会看到源代码文件了,就可以放心的git add -A了。

6.tag

我们可以创建一个tag来指向软件开发中的一个关键时期,比如版本号更新的时候可以建一个“v2.0”、“v3.1”之类的标签,这样在以后回顾的时候会比较方便。tag的使用很简单,主要操作有:查看tag、创建tag、验证tag以及共享tag,这些下面的博客中有详细讲解。


   遇到几个问题,记录一下:
1.   用TortoiseGit Git clone时 “Load Putty Key”为灰色
  在TortoiseGit的Settings中找到Network,在下面的SSH client 框中应设置为TortoiseGit安装目录下的bin文件夹里的TortoiseGitPlink.exe。例如:D:\Development\TortoiseGit\bin\TortoiseGitPlink.exe。设置好后点应用,这时Load Putty Key应该就能用了。

2. TortoiseGit 不显示图标的问题:

解决:运行 --->"regedit" 打开注册表,可以把 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
里面的除了  TortoiseSVN 之类的有关的可以删掉。 
然后重启你的桌面。 就可以解决了。  这是因为其它软件的优先级更高,把图标给占用了。

Eclipse + GitHub 环境搭建:GitHub使用教程for Eclipse   ,Eclipse下设置github开发环境
 Git 教程:Git 教程    


  Git reset :
  • A).  --hard:重设(reset)  index和working directory,自从<commit>以来在working directory中的任何改变都被丢弃,并把HEAD指向<commit>。 
    B).  --softindex和working directory中的内容不作任何改变,仅仅把HEAD指向<commit>。这个模式的效果是,执行完毕后,自从<commit>以来的所有改变都会显示在git status的 "Changes to be committed"中。 
    C).  --mixed仅reset index,但是不reset working directory。这个模式是默认模式,即当不显示告知git reset模式时,会使用mixed模式。这个模式的效果是,working directory中文件的修改都会被保留,不会丢弃,但是也不会被标记成"Changes to be committed",但是会打出什么还未被更新的报告。报告如下: 
    引用
    Unstaged changes after reset: 
    M Test.Scala 
    M test.txt
HEAD^  指向HEAD之前最近的一次commit。 
HEAD~3 指向当前HEAD-3个commit的commit, git reset --hard HEAD~3 删除最近的三个commit(删除HEAD, HEAD^, HEAD~2),将HEAD指向HEAD~3 。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值