git和github新手快速操作流程

本文主要介绍利用git版本控制将项目托管到远程仓库github上的一般性操作流程,为了给正在学习git的同学们一个小小的参考,以便更轻松的去深入学习git,本文所有操作均在Windows环境下进行。

安装配置部分

第一步:安装git

Windows平台可直接到官网http://www.git-scm.com/下载安装。或者下载Cmder这款工具代替git工具也是很不错的,具体参考:逆天神器cmder 和 Cmder简单使用小结 。

Linux平台安装: sudo apt-get install git-core

第二步:配置全局用户

打开Git Bash 工具敲入命令

 
1
2
git config --global user.name "codesboy"
git config --global user.email "565195693@qq.com"

此时在用户目录下会出现一个隐藏的配置文件 .gitconfig

第三步:生成密钥 SSH key

ssh-keygen -t rsa -C "565195693@qq.com"  三次回车默认即可,此时在用户目录下会出现一个隐藏的文件夹 .ssh/ ,在这个文件夹里会生成id_rsa和id_rsa.pub两个文件。

如果出现 ssh-keygen不是内部或外部命令 这样的错误提示,则需要将ssh-keygen.exe所在路径添

加到系统环境变量中的path里去。

第四步:添加密钥 SSH key 到github

github官网注册一个账号,然后到个人设置面板里选择SSH and GPG keys选项,点击右侧的New SSH key,title随意写,把id_rsa.pub文件里面的内容复制添加到key值里面,,然后点击Add SSH Key.

第五步:验证密钥

 
1
ssh -T git@github.com

需要输入yes确认,然后如果出现这样的信息表示密钥创建成功:

 
1
Hi codesboy! You've successfully authenticated, but GitHub does not provide shell access.

创建项目部分

第一步:在远程github上创建一个项目

点击 New repository选项创建一个新的仓库,填好仓库名称Repository name、此仓库的说明Description(optional)、其他选项默认或根据自己需求选择即可。最后点击 Create repository 完成仓库创建。

第二步:克隆远程仓库到本地

git clone https://github.com/codesboy/myproject.git

https://github.com/codesboy/myproject.git是上面新建好的远程仓库地址

注意这里有HTTPS和SSH两种clone方式

第三步:为克隆到本地的仓库修改或添加自己的项目文件

第四步:把添加或修改或删除的所有内容添加到索引中(本地暂存区)

git add . 或 git add --all

为commit做好准备,可以 git diff --cached  查看那些改动将被提交

第五步:提交修改 git commit 到本地仓库

git commit -m "my first commit"

注:my first commit是对本次提交的说明,如果不加-m参数 ,git将调到一个文本编译器(通常是vim)来让你输入提交的描述信息,

可能一天下来,你对工作树中的许多文档都进行了更新(文档添加、修改、删除),但是我忘记了它们的名字,此时若将所做的全部更新添加到索引中,比较轻省的做法就是:
git commit -a -m "提交的描述信息"
git commit 命令的-a 选项只将所有被修改或者已删除的且已经被git管理的文档提交倒仓库中,不能添加用户新增的文件到索引中,如果没有新增的内容就可以使用git commit -a -m ""或者git commit -am""命令
git commit --amend命令可以修改最近一次的提交说明(注释)

第六步:推送到远程github仓库

 
1
git push -u origin master  //输入用户名和密码

注:首次push 要加参数 -u

github免输帐号密码的配置:(Windows)

1、添加名为HOME的环境变量,值为%USERPROFILE%

2、在计算机用户文件夹下创建名为_netrc的文件,内容为:

machine github.com

login username

password password

 
1
##上面的username和password改成你自己的github用户名和密码

推荐另外一种在push的时候不需要输入密码的方式:

用ssh协议,而非https协议,用git remote -v可以查看使用的哪种方式

直接修改配置文件.git/config,把url项设置成如下格式

url = git@github.com:codesboy/xxx.git

经过上面这些步骤,这时到远程github仓库去查看就会看到有本地提交上来的文件


除了上面所列出的以外,git还有其他很多常用的命令,这里也总结一下:

git init 初始化仓库,在本地新建仓库会用到

git log 查看git日志

git status 查看当前状态

git remote add origin https://github.com/username/project.git 关联一个远程仓库

或者git remote add origin git@github.com:username/project.git(推荐)需要配置ssh

git remote -v 查看远程版本仓库连接

查看所有的分支和当前处于哪个分支:git branch

创建本地仓库分支:git branch 分支名称

删除本地仓库分支:git branch -d 分支名称

删除某个文件夹或路径:git rm -r --cached 文件夹或文件路径

切换到本地某分支:git checkout 分支名称

合并本地某分支到当前分支:git merge –no-ff -m “remark” 分支名称

创建并切换到本地该分支:git checkout -b dev

拉取版本库最新数据到本地仓库:git pull

2017-07-21新增:配置本地多个git用户

1.删除之前配置的全局用户名和邮箱文件C:\Users\admin\.gitconfig

2.配置第二个用户的ssh key

ssh-keygen -t rsa -C "201988099@qq.com"

执行该命令后,出现第一个选项不要直接回车,如果直接回车会覆盖掉第一个用户默认的ssh key文件id_rsa和id_rsa.pub,这里需要设置一个新的名称,比如id_rsa_user2。剩下的两项可以直接回车。然后会生成id_rsa_user2和id_rsa_user2.pub两个文件,将这两个文件移动到C:\Users\admin\.ssh下面去。

3.将id_rsa_user2.pub文件里面的内容复制到github里去。

4.在C:\Users\admin\.ssh下面新建一个config文件,写入以下内容

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Host codesboy
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa
 
Host cnnet
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/cnnet
 
Host chinaweb
    HostName github.com
    User git
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/chinaweb

对此config配置文件解释一下:

Host
它涵盖了下面一个段的配置,我们可以通过他来替代将要连接的服务器地址。
这里可以使用任意字段或通配符。
当ssh的时候如果服务器地址能匹配上这里Host指定的值,则Host下面指定的HostName将被作为最终的服务器地址使用,并且将使用该Host字段下面配置的所有自定义配置来覆盖默认的/etc/ssh/ssh_config配置信息。
git@github.com:用户名/项目名.git

其中的git表示用户名,github.com表示服务器别名
Port
自定义的端口
User
账号,要与git config的email对应
HostName
真正连接的服务器地址一般为github.com或者git.oschina.net等其他git服务器
PreferredAuthentications
指定优先使用哪种方式验证,支持密码和秘钥验证方式
IdentityFile
指定本次连接使用的私钥文件,即用 ssh-keygen -t rsa -C "xxx@qq.com" 生成的文件名

Ps

通过config文件可以管理多个ssh会话。通过Host别名也可以直接【ssh 别名】登录到其他机器上

       配置了User,git push时就一定要配置相同的email
       如果不设置User,随意一个user.email都可以提交git push
       如果设置了User,user.email必须匹配到config中的User才能提交【git config user.email=xxxx@xxx.com】
 

5.验证ssh key

ssh -T git@cnnet cnnet是在config里自定义的Host别名

6.git remote也要使用别名

git remote add origin git@cnnet:cnnet/test.git

说明

id_rsa:私钥
id_rsa.pub:公钥
known_hosts:访问过的机器的公钥,第一次ssh 其他机器时如果有权限访问,会提示是否保存信息,下次会校验访问该机器的公钥与known_hosts中的是否一致,如果不一致则不能登录过去。解决方案是删除known_hosts中该条机器的记录
 
git push时需要配置user的email和name,除了上面说的配置了~/.ssh/config的User的情况。
email和name可以随便填写,不存在的github账号也可以提交成功,只要你把ssh的公钥加到github里即可。
只是如果email不存在,则github上提交记录上用户头像不能点击;如果真实存在的github账号,点击进入该用户的个人主页
 
 

git和github新手快速操作流程的更多相关文章

  1. GitHub新手快速入门日常操作流程

    GitHub新手快速入门日常操作流程 1. 注册帐号 打开https://github.com/,填写注册信息并提交. 2. 登录帐号 打开https://github.com/login,输入注册的 ...

  2. git和github新手安装使用教程(三步入门)

    git和github新手安装使用教程(三步入门) 对于新手来说,每次更换设备时,github的安装和配置都会耗费大量时间.主要原因是每次安装时都只关心了[怎么做],而忘记了记住[为什么].本文从操作的 ...

  3. 转载:git和github新手安装使用教程(三步入门)

    转载防止以后电脑重装,找不到记录. 教程地址:https://www.cnblogs.com/ttjsndx/p/7943444.html

  4. GitHub 新手教程 五,Git GUI 新手教程(2),Clone Existing Repository 克隆代码库

    1,注意: 网上大部分教程都是从“Create New Repository”讲起,这其实给我们新手埋了很大的一个坑.按照类似的教程,仅做到一半,各种错误窗口就会弹出来了,像什么:“非同一代码库”.“ ...

  5. GitHub 新手教程 四,Git GUI 新手教程(1),OpenSSH Public Key

    1,从开始菜单 启动 Git GUI,或者运行: D:\soft\Git\cmd\git-gui.exe(D:\soft\Git 为您的 GitHub 安装文件夹) 2,获取 SSH 密钥: 3,点击 ...

  6. 最新GitHub新手使用教程(Linux/Ubuntu Git从安装到使用)——详细图解

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一.叙述 1.说明:需要在Windows 安装Git的同学,可以查看该篇博客 https://blog.csdn.net/qq_4 ...

  7. 最新GitHub新手使用教程(Windows Git从安装到使用)——详细图解

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 一.叙述 1.Git简介 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本 ...

  8. Windows英文版GitHub客户端使用操作流程图文攻略教程现没中文版

    Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理.作为一个程序员,我们需要掌握其用法. 作为开源代码库以及版本控制系统,Github目前拥有140 ...

  9. Git和Github的应用与命令方法总结

    title: Git和Github的应用与命令方法总结 date: 2016-07-11 14:03:09 tags: git/github [本文摘抄自微信公众平台:AndroidDeveloper ...

随机推荐

  1. C_汉诺塔的故事(递归)

    汉诺塔: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘.大梵天命令婆罗门把圆盘从下面开始按大小顺 ...

  2. 一款开源免费的WPF图表控件ModernuiCharts

    一款简洁好看的Chart控件  支持WPF.silverlight.Windows8  ,基本够用,主要是开源免费的.(商业控件ComponentOne for WPF要4w多呢) This proj ...

  3. cocos creator热更新教程

    1.下载HotUpdate热更新DEMO 2.在cocos creator中下载热更新插件,cocos creator版本要在1.7及以上版本 3.插件默认安装在C:\Users\Administra ...

  4. Docker构建YApi镜像, Docker安装YApi, Docker部署YApi

    概述 YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发 ...

  5. [android警告]AndroidManifest.xml警告 Not targeting the latest versions of Android

    警告:Not targeting the latest versions of Android; compatibility modes apply.Consider testing and upda ...

  6. 每天一个linux命令(16):which

    1.命令简介 which (which) 命令的作用是在PATH变量指定的路径中搜索某个系统命令的位置并且返回第一个搜索结果.也就是说使用which命令就可以看到某个系统命令是否存在以及执行的到底是哪 ...

  7. easylog -- Linux 下的简单日志库

    之前使用 log4c 或者 log4cpp 的时候, 总需要配置一些文件和链接库之类复杂的配置. 虽然越复杂越说明这个软件支持的功能多.可选择性强, 但是对于一个小的项目,或者要研究他人的代码而加点儿 ...

  8. 【C++】C++中的分离式编译

    在C++中随着程序越来越复杂,我们希望把程序的各个部分分别储存在不同的文件中.C++支持的分离式编译(separate compilation)允许我们把程序分割到几个文件中去,每个文件独立编译. 头 ...

  9. LVS简介与使用

    一.LVS是什么? LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器.它是我们国家的章文嵩博士的一个开源项目.在linux内存2.6中,它已经成为内核的一部分,在此之 ...

  10. 设置 WPF 的内容支持触摸直接滚动

    在滚动内容上设置属性 ScrollViewer.PanningMode 的值即可. 另外可重写 OnManipulationBoundaryFeedback 方法来替换系统默认的滚动到最上最下时触发的 ...