`
dreamoftch
  • 浏览: 495682 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

git使用入门(转)

    博客分类:
  • git
阅读更多

windows下使用git管理github项目(入门)

window上使用GIT的个人经验(入门级)

 

git branch 管理常用命令

 

Git教程【译】

 

Git使用

 

【Github教程】史上最全github使用方法:github入门到精通

 

 

 

 

 

 

本来的编写参看网上的两篇文章,两篇文章都不错,不过参照其中的任何一篇,在安装git和托管github项目的时候,都会存在一些问题,这里取两家之长,给出一个可操作性的文档说明,这也是本文写作的初衷。

本文简单介绍如何在windows下使用git及github仓库管理项目。

1 安装

目前windows版本的git有几种实现,但我们选择msysgit发行版,这是目前做得兼容性最好的。下载地址:http://code.google.com/p/msysgit/downloads/list

下载完成后双击安装文件并按照提示完成git的安装。git的安装过程十分简单,安装完毕后会提示你做初步的配置工作,这里我们全部按照默认值即可(PS:在选择git bash时我选择了类unix提示界面),安装完毕后git bash启动界面如下所示:


2 创建帐号

github是一个类似sf的免费项目管理及分享的服务平台,要想使用github提供的服务,你必须先注册成为github注册用户。github的网址是:http://github.com

3 建立本地git仓库

在D盘下创建目录git_repository(后续的项目都可以集中放在git_repository中),可以通过在git bash中执行以下命令完成:

 

1 cd /d
2 mkdir git_repository

4 生成SSH密钥

在git bash中执行以下命令完成:

 

1 ssh-keygen -C 'XX@gmail.com' -t rsa
一路按Enter键即可,当然如果你想选择使用密码功能,那么在提示输入密码是选择你自己的密码。过程如下图所示:

 


注意:ssh-keygen中的邮箱请使用github注册用户时使用的邮箱。

登陆github系统。点击右上角的Edit your profile---> Account Settings--->SSH Public keys ---> add another public keys,把你本地生成的密钥复制到里面(key文本框中), 点击 add key 就ok了。

测试连接是否成功,在git bash中执行以下命令完成:

 

1 ssh -T git@github.com

提示如下信息说明连接成功:

 

 

设置username和email,因为github每次commit都会记录他们。

$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"

 

5 创建一个项目

5.1 回到github首页,点击页面右下角“New Repository”

填写项目信息:

project :hello-world

description : my first project

点击“Create Repository” ; 现在完成了一个项目在github上的创建。


5.2 使用git在本地创建一个相同的项目

 

1 $ makdir ~/hello-world    //创建一个项目hello-world
2 cd ~/hello-world    //打开这个项目
3 $ git init    //初始化
4 touch README
5 $ git add README   //更新README文件
6 $ git commit -m 'first commit'//提交更新,并注释信息“first commit”
7 $ git remote add origin git@github.com:defnngj/hello-world.git   //连接远程github项目 
8 $ git push -u origin master   //将本地项目更新到github项目上去
现在查看github上面的hello world 项目,是不是发现已经将本地中的README文件更新上来了。 :) 恭喜!

5.3 可能出现的问题

5.3.1 问题一

执行下面语句报错

1 git remote add origin git@github.com:defnngj/hello-world.git

错误提示:fatal: remote origin already exists.

解决办法:

 

1 git remote rm origin

然后在执行:

1 $ git remote add origin git@github.com:defnngj/hello-world.git

5.3.2 问题二

执行下面语句报错

 

1 git push origin master

错误提示:error:failed to push som refs to.......

解决办法:

 

1 $ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。

 

  

git branch 管理常用命令

分类: 代码管理2013-07-16 12:31 492人阅读 评论(1) 收藏 举报

查看本地分支

 

[plain] view plaincopyprint?
 
  1. git branch  
  2. * dev  
  3.   master  
*代表当前位于dev分支

 

查看远程分支

 

[plain] view plaincopyprint?
 
  1. git branch --remote  
  2.   origin/dev  
  3.   origin/master  

查看远程和本地所有分支,用-a参数

 

[plain] view plaincopyprint?
 
  1. git branch -a  
  2. * master  
  3.   remotes/origin/HEAD -> origin/master  
  4.   remotes/origin/develop  
  5.   remotes/origin/issue_193  

 

 

 

创建分支

 

[plain] view plaincopyprint?
 
  1. git checkout -b new_branch  
注意,new_branch的代码来自于当前分支

 

 

切换分支

 

[plain] view plaincopyprint?
 
  1. git checkout another_branch  
和创建分支就差-b参数

 

 

push本地分支代码到远端服务器

[plain] view plaincopyprint?
 
  1. git push origin branch_name  
如果远端服务器没有该分支,将会自动创建

 

 

pull远端分支代码到本地对应分支

 

[plain] view plaincopyprint?
 
  1. git pull origin branch_name  

删除本地分支,首先切换到别的分支,然后才能删除某个分支

 

 

[plain] view plaincopyprint?
 
  1. git checkout b  
  2. git branch -d a  

删除远程分支

 

 

[plain] view plaincopyprint?
 
  1. git push origin --delete branch_name  

合并本地分支

 

[plain] view plaincopyprint?
 
  1. git merge b  
假设当前分支为dev,上面的命令就是将本地的b分支代码合并到当前分支dev中

 

 

合并远程分支,和前面的几乎一样,

 

[plain] view plaincopyprint?
 
  1. git merge origin/b  
远程分支b被合并到本地当前分支dev中了。

 

来个粒度细点的merge,如果我当前分支为develop, 想把a branch中的build.lsp merge到develop分支,怎么办? checkout啊!

 

[plain] view plaincopyprint?
 
  1. git checkout a build.lsp  

 

 0.安装

使用google上的msysgit 

http://code.google.com/p/msysgit/downloads/list 

尽量用最新版的吧 

1.KEY

关于 key,.ssh里面的key是与服务器通信用的,其他什么用,也不一定要用email,其实随便用什么都可以。

github.com上那个

ssh-keygen -t rsa -C "email"

有误导的成分,其实引号里面的不一定要email随便都可以,只要把本地.ssh/id_rsa.pub里面的东西复制到github里面的public ssh key就可以了。

2.大小区分的问题

开始在github上建了个项目,在本地使用了$ git  remote add git@github.com:{user}/{project}.git,结果因为输入是大小写跟服务器上不一致,导致找不到项目,郁闷啦,最郁闷的是,在windows上重新按正确的大小写add一次,提示已经存在,最后的解决办法是先删除,然后在添加

 

git remote rm origin

 3.Bash粘贴

默认情况下Git Bash居然不支持粘贴,在我输入api key的时候最郁闷,后来解决方法是在Bash窗口上点右键 选择Properties把QuiteEditMode,InsertMode复选框勾上。

 

 4.使用GitHub.com服务器

开始的时候以为设置加密就可了,原来还有一个apiKey和用户输入

也就是在config里面配置github.com里的用户名和邮箱

$ git config --global github.user "youruser" 

$ git config --global github.token yourtoken(在GitHub上的account settings>account admin >>api token那串字符)

配置好了,可以通过

$git config --list查看。

 

5.关于VIM窗口 

开始用git commit 提交的时候是用 -m “message”的

后来直接用git commit 回车后弹出一个窗口,后来才知道是linux下的文本编辑器

郁闷的是半天退出不出来,baidu,google一番,

进入之后是VIM的普通模式,按 键,进入INSERT模式,这是可以输入message了。

输入完成之后,按ESC键进入命令模式 ,输入冒号(在窗口下面显示),然后输入x,回车就OK了。

 

其实可以用记事本代替vim,

输入如下配置:

git config --global core.editor C:/windows/notepad.exe 

 

6.清楚Bash里面的历史记录

其实就是Linux清楚历史命令,直接输入$ history -c 

 

7.关于Tag

打tag很简单,所谓“会者不难难者不会”,直接使用git  tag -a tagname -m“mesage”

打完tag要显示的push,使用命令git push origin tangname,这样别人才能看到

切换到tag下面用git checkout tagname, 

删除tag:git tag -d tagname

远程删除:git push origin :refs/tags/tagname

 

8.关于Branch

git branch 不带参数:列出本地已经存在的分支,并且在当前分支的前面加“*”号标记

git branch -r 列出远程分支

git branch -a 列出本地和远程分支

git branch BranchName 创建新的 本地 Branch

git branch -d Branchname 删除branch

git branch -d -r Branchname 删除远程branch(例git branch -d -r origin/aa)

git push <remote repository> <local branch> 把本地branch 推送到远程服务器

 

error: dst refspec notmaster matches more than one.

That's because I had a tag with the same name as the branch. This was a poor choice on my behalf and caused the ambiguity. So in that case:

$ git push origin :refs/heads/notmaster
http://stackoverflow.com/questions/2003505/how-do-i-delete-a-git-branch-both-locally-and-in-github

 

 

9.关于GITK

推荐一篇好的文章

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/ 

 

10.返回命令窗口 

以前一直很郁闷,输入了git log之后不知道怎么返回到命令窗口,就直接关闭整个窗口,

今天用git show tagname也出现了这个问题,经过摸索发现其实很简单

输入q,其他键盘会继续显示剩余log(如果有的话)

也就是Linux的退出命令 

 

11.文件还原

用了一段时间发现文件还原很重要,之前不知道怎么弄,装了TortoiseGit用上面的Revert菜单。

其实用GIT命令是这样滴:

a,如果文件修改了但是没有提交(commit),直接用git checkout -f

b,如果修改了并提交了,

可以用 git revert HEAD

可以用git reset --hard HEAD

 

 

 

【Github教程】史上最全github使用方法:github入门到精通

作者:Vurtexゞ.更新于 05月10日访问(3160)评论(1

【初识Github】
首先让我们大家一起喊一句“Hello Github”。YEAH!就是这样。

原文 http://www.eoeandroid.com/thread-274556-1-1.html
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,包括Rubinius和Merb在内的很多知名项目都使用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。同样,eoe.cn客户端的源码也托管在github上。

GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。

在GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。

GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。

GitHub For Windows
GitHub for Windows 是一个 Metro 风格应用程序,集成了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。GitHub 为 Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。微软也通过CodePlex向开发者提供 git 版本控制系统,而 GitHub 创造了一个更具有吸引力的 Windows 版本。

GitHub上已自动配置的Mac笔记本电脑,一个工具,可以转换设置Linux或Windows机器。

BOXEN是GitHub的自动化工具,设置和配置的Mac笔记本电脑软件开发[3]或其他类型的工作,正在使用他们的开发人员,律师,设计师,付货人,等。我们的想法是准备系统以自动方式和作为无差错尽可能用最少的干预工作。根据GitHub上,与一个新的开发机器上,他的Mac系统成立,并准备在30分钟内提交代码。

BOXEN的基础上收集了大量的几十个木偶模块,使设置的各种软件,如卡桑德拉,MongoDB中,Java软件中,Python和Ruby开发中,节点,JS,nginx的,Skype公司,甚至MINECRAFT。虽然机器上配备了一个预配置,每个用户都可以调整它的配置应有的作用。

【如何使用】

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;
$ 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下输入:

$ ssh -T git@github.com

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

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

$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"

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

1
$ git remote add origin <a href=""mailto:git@github.com"" target=""_blank"">git@github.com</a>:yourName/yourRepo.git   

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

4.提交、上传

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

$ git add README
$ git commit -m "first commit"

上传到github:

$ 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是这样写的:

bin
*.suo
obj

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

6.tag

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

【Github的相关使用文章】
Git介绍,安装,Git+Git flow使用:http://my.eoe.cn/fogs/archive/799.html
Git 指令集:http://my.eoe.cn/iceskysl/archive/463.html
在mac上安装git-flow过程:http://my.eoe.cn/iceskysl/archive/118.html
git fetch 的简单用法:更新远程代码到本地仓库:http://my.eoe.cn/com360/archive/3533.html
git 如何让单个文件回退到指定的版本:http://my.eoe.cn/com360/archive/3351.html
如何使用Github上的开源项目:http://my.eoe.cn/fengyiyezi/archive/3427.html
Window(8)下安装 MSysGit 、gitflow 、GitHub:http://my.eoe.cn/sunxun/archive/158.html
git 打tag:http://my.eoe.cn/xiayang6/archive/446.html
基于Github参与eoe的开源项目指南:http://my.eoe.cn/iceskysl/archive/3195.html
Git stash 使用方法:http://my.eoe.cn/sunxun/archive/190.html
Git tag的使用:http://my.eoe.cn/futurexiong/archive/1943.html
大白话讲解如何给github上项目贡献代码:http://my.eoe.cn/leigo/archive/3221.html

最后再推荐几篇社区里介绍知道github使用的帖子:

githup的使用
http://www.eoeandroid.com/thread-272837-1-1.html

Eclipse上GIT插件EGIT使用手册
http://www.eoeandroid.com/thread-273360-1-1.html

ubuntu下git服务器的搭建
http://www.eoeandroid.com/thread-273167-1-1.html

git , vim , ls 全局配置
http://www.eoeandroid.com/thread-229638-1-1.html

以上希望对大家学习起到积极的作用,一个好的程序猿势必要学会github的使用。如果本文大家觉得还不错,就告诉你身边的朋友吧,如果觉得看得过去那么就分享一下吧,如果觉得有待修改,那么请指出不足并且给打赏几个e币。最后感谢百度的无私支持,以及某个人的博客(说真的真的忘了他的地址是啥了),Hello Github。

分享到:
评论

相关推荐

    Git快速入门学习.pdf

    例如,在IntelliJ IDEA这样的集成开发环境中,可以直接使用Git进行版本控制操作,如提交更改、切换分支、解决合并冲突等。这样使得版本控制的操作更加直观和便捷。 总的来说,Git是一种强大的版本控制工具,对于...

    Git教程 从入门到精通

    ### Git教程从入门到精通——知识点详解 #### 一、Git简介 - **Git是什么**:Git是一款目前世界上最先进的分布式版本控制系统。它被设计用于高效处理从小型到大型项目的版本控制,尤其适合软件开发项目。 - **Git...

    Git入门指南(Git新人入门必看)

    在Git仓库中操作文件,首先要将文件添加到暂存区,使用`git add`命令。例如,创建一个名为`first.txt`的文本文件,编辑内容后,通过`git add first.txt`将其添加到暂存区。接着,使用`git commit -m "提交信息"`将暂...

    GIT使用入门.pdf

    ### Git使用入门知识点详解 #### 一、Git简介与应用场景 **Git** 是一款开源的分布式版本控制系统,用于跟踪在软件开发过程中对文件所做的更改。它最初由Linus Torvalds于2005年创建,目的是为了更高效地管理Linux...

    git从入门到精通

    git全方位了解,从入门到精通,初学者的圣经宝典

    git使用入门及详解图文并茂

    git使用入门及详解图文并茂

    git使用入门教程

    Git 使用入门教程 Git 是一款强大的开源分布式版本控制系统,它被广泛应用于软件开发和其他需要版本管理的场景。本文将简要介绍 Git 的基础知识,并探讨其优势以及如何安装和使用 Git。 一、Git 简介 Git 的核心...

    猴子都能懂的Git入门-整站

    "猴子都能懂的Git入门-整站"是一个专门为初学者设计的Git学习资源,旨在用简单易懂的方式讲解Git的基础知识,并逐步引导进阶到高级应用。 入门篇主要涵盖以下内容: 1. Git安装:讲解如何在Windows、Mac OS X和...

    Repo git的入门使用.doc

    本文将深入探讨Repo Git的入门使用,常用命令,以及如何处理代码冲突。 1. **Repo Git入门**: 使用`repo init`命令初始化Repo,这会下载项目的配置文件。例如: ``` repo init -u ssh://git@192.168.6.192:/...

    git入门教程

    本篇文章将为初学者提供一个简明的Git入门教程,涵盖了Git与SVN的区别、Git分支与流程、以及一些基础命令的使用。 ### Git与SVN的区别 首先,我们需要了解Git与另一款常用的集中式版本控制系统SVN的主要差异。SVN...

    Git实战入门.docx

    总的来说,这份文档提供了一个全面的Git入门指南,涵盖了从安装到实际操作的所有基本步骤,对于初学者来说是一份非常实用的学习资源。配合提供的视频教程,学习者可以更直观地理解Git的工作原理和实践操作。

    GIT使用入门详细教程,完整且傻瓜

    GIT使用入门详细教程,完整且傻瓜

    git入门培训pptgit入门培训ppt

    git入门培训ppt,git使用培训,git发展,git分支的使用,git中的基本使用说明和以及基本命令, git入门培训ppt,git使用培训,git发展,git分支的使用,git中的基本使用说明和以及基本命令

    GIT教程_git入门_git_

    本教程绝对面向初学者,没有接触过版本控制概念的读者也可以轻松入门,不必担心起步难度;

    猴子都能懂的Git入门 HTML整站离线 2017-07

    "猴子都能懂的Git入门"这个标题暗示了这是一个适合初学者的Git教程,旨在用易于理解的方式介绍Git的基础知识。下面将详细阐述Git的核心概念和常用操作。 1. **Git基础概念**: - **仓库(Repository)**:Git中的...

    猴子都能懂的GIT入门

    "猴子都能懂的GIT入门"这个主题,旨在让初学者,甚至是对技术不太熟悉的人都能轻松理解Git的基本概念和操作。Git的核心价值在于它能够跟踪代码的历史版本,允许团队成员在不影响主分支的情况下各自开发,然后通过...

    Git入门到实践

    Git入门到实践 高清 有目录

    GIT从入门到精通.pptx

    81页ppt详细介绍如何使用Git进行版本控制,有详细的代码和图片描述,跟着ppt实战操作,整个流程下来收获巨大。

    git使用书籍,帮你快速入门

    3本git教程,让你轻松掌握git的使用,其中廖雪峰的git的教程让你快速入门,深入学习可看其中的Pro Git

Global site tag (gtag.js) - Google Analytics