简介:

之前研究了 Git 单机版 ( 单兵作战 ),今天来研究一下 Git 联机版 ( 团队协作 )!

GitHub 是一个开源的代码托管平台,可以分享自己的代码到该平台上,让大家参与开发或供大家使用,等。( 也可以搭建自己的 Git 仓库,相关产品:gitlab 、coding.net )

一、GitHub ( 使用开源的代码托管仓库 )

1、创建 GitHub 账号:https://github.com/

## 创建好用户后,点击右上角 -> Settings -> Emails 这里需要验证邮件地址 ( 建议不要写网易旗下的邮箱地址,如:163 / 126 否则你会崩溃的,收不到 github 发送的验证邮件 )

2、打开 Sehll / git Shell 生成公钥、私钥 ( Linux / Windows )

shell > ssh-keygen -t rsa -C "wangxiaoqiangs@foxmail.com" # 全部默认回车

3、登陆 GitHub 点击 Settings -> SSH keys -> Add an SSH key ( 有了 key 就能证明你就是你了~ ,可以添加多个 key )

输入 Title ( 任意 )
输入 公钥 ( id_rsa.pub 中的内容 )

-> Add key

4、这样就在 GitHub 安好家了,GitHub 上的内容默认公开,别人可读。

## Github 地址:https://github.com/wangxiaoqiangs

5、登陆 GitHub 点击右上角的 '+' 号 -> New Repository 创建远程仓库

Repository name : MyTest  # 仓库名称

Description(optional) :       # 仓库描述

Public : 只能勾选这个,不花钱的情况下

> Create repository

## 现在你可以看到创建好的一个空仓库,上面有提示可以这么、那么操作!

二、与远程仓库交互

1、git 配置

shell > git config --global user.name 'wangxiaoqiangs'
shell > git config --global user.email 'wangxiaoqiangs@foxmail.com'
shell > git config --global color.ui true

2、创建本地库

shell > mkdir -p /git/MyTest
shell > git init # 初始化 git 仓库
Initialized empty Git repository in /git/MyTest/.git/ shell > echo "This is a test repository" > README.md # 生成测试文件,并提交到本地库
shell > git add README.md
shell > git commit README.md -m 'first commit'

3、关联远程仓库、推送本地仓库

shell > git remote add origin git@github.com:wangxiaoqiangs/MyTest.git # 本地仓库跟远程仓库关联
shell > git push -u origin master # 将本地仓库推送到远程仓库,第一次推送时要加 -u 参数
Counting objects: , done.
Writing objects: % (/), bytes, done.
Total (delta ), reused (delta )
To git@github.com:wangxiaoqiangs/MyTest.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.

## 现在去 GitHub 就可以看到 MyTest 仓库中有 README.md 文件了

注意:第一次执行时,会有如下提示,属正常

The authenticity of host 'github.com (192.30.252.128)' can't be established.
RSA key fingerprint is ::ac:a5:::2d:::1b::4d:eb:df:a6:.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.252.128' (RSA) to the list of known hosts. shell > cp /script//Student_management_system.py . # 拷贝一个文件来本地仓库,并提交
shell > git add Student_management_system.py
shell > git commit Student_management_system.py -m 'Second submission'
[master a946cf0] Second submission
files changed, insertions(+), deletions(-)
create mode Student_management_system.py shell > git remote origin master # 将最新的修改推送到远程仓库
Warning: Permanently added the RSA host key for IP address '192.30.252.129' to the list of known hosts.
Counting objects: , done.
Compressing objects: % (/), done.
Writing objects: % (/), 1.33 KiB, done.
Total (delta ), reused (delta )
To git@github.com:wangxiaoqiangs/MyTest.git
5fdb1c4..a946cf0 master -> master

## 现在远程仓库中也有了新的文件了~

4、从远程仓库克隆

## 登陆 GitHub 创建远程仓库

Repository name : GithubTest   # 仓库名称

Description(optional) :              # 仓库描述

Public : 只能勾选这个,不花钱的情况下

Initialize this repository with a README : 勾选,自动生成 README.md

> Create repository

## 现在就创建了一个远程仓库,并生成了 README.md 文件

shell > cd /git/
shell > git clone git@github.com:wangxiaoqiangs/GithubTest.git # 从远程仓库克隆一份到本地
Initialized empty Git repository in /git/GithubTest/.git/
remote: Counting objects: , done.
remote: Total (delta ), reused (delta ), pack-reused
Receiving objects: % (/), done. shell > cd GithubTest/ ; ls # README.md 文件已经克隆到了本地
README.md shell > 修改 README.md 文件,添加一行 Local change shell > git add README.md
shell > git commit README.md -m 'First submission'
shell > git push origin master

## 将修改推送到远程仓库

三、分支管理

shell > git clone git@github.com:wangxiaoqiangs/MyTest.git # 克隆一个远程库到本地

shell > git branch # 查看本地分支
* master shell > git checkout -b dev # 新建、并切换分支 ( git branch dev # 新建分支 git checkout dev # 切换分支 )
Switched to a new branch 'dev' shell > git branch # 再次查看分支,前面有 * 的代表当前分支
* dev
master shell > echo 'This is a testing' > T.txt # 新建一个测试文件,并提交
shell > git add T.txt
shell > git commit T.txt -m 'dev commit'
[dev 59b4093] dev commit
files changed, insertions(+), deletions(-)
create mode T.txt shell > git checkout master # 切换回主分支
Switched to branch 'master' shell > git branch # 可以看到当前分支是 master,现在是看不到刚才在 dev 分支创建的 T.txt 文件的,因为还没有合并分支
dev
* master shell > git merge dev # 将 dev 分支合并到当前分支,也就是 master (主) 分支
Updating a946cf0..59b4093
Fast-forward
T.txt | +
files changed, insertions(+), deletions(-)
create mode T.txt shell > git branch -d dev # 删除 dev 分支,也可以不删
Deleted branch dev (was 59b4093). shell > git branch # 仓库中再次只剩下主分支了
* master shell > git push origin master # 将修改推送到远程仓库
Counting objects: , done.
Compressing objects: % (/), done.
Writing objects: % (/), bytes, done.
Total (delta ), reused (delta )
To git@github.com:wangxiaoqiangs/MyTest.git
a946cf0..59b4093 master -> master

## 如果合并分支有冲突的话,要自己手动编辑文件,之后重新提交 ( git add File.txt , git commit -m 'commit' )
## 如果有别的分支修改文件,没有合并前不要在 master 分支修改文件,否则会合并冲突
## 查看合并日志:git log --graph --pretty=oneline --abbrev-commit

## 合并分支的时候:git merge --no-ff -m "merge with no-ff" dev ,采用 --no-ff 参数,可以在删除分支后也能查到合并日志

Git 联机版的更多相关文章

  1. jenkins中通过git发版操作记录

    之前说到的jenkins自动化构建发版是通过svn方式,今天这里介绍下通过git方式发本的操作记录. 一.不管是通过svn发版还是git发版,都要首先下载svn或git插件.登陆jenkins,依次点 ...

  2. 【重要】Pro Git 第二版 简体中文

    不管是入门还是精通git,下面这本书都是必读,同时它也是官方推荐书籍.   Pro Git 第二版 简体中文     我自己还收集了一份网页版的progit,但可能不是progit第二版. 下载地址  ...

  3. GIT 简单版

    Git规范 by 程序亦非猿 2016.4.6 这又是一篇我在公司分享的,想制定一下Git的规范,有兴趣的可以看看~ 上一篇在这里 分支模型 每个项目必须要有master.develop分支. 每个开 ...

  4. git便携版 添加git-bash到右键菜单

    注册表路径 HKEY_CLASSES_ROOT\Directory\Background\shell 新建项取名open in git 默认设置为右键显示的名称 Git Bash Here 新建字符串 ...

  5. Git教学教程--学生使用教程(非Git操作版)

    一.注册(必须) 注册完成后由"教师"将你加入高校/企业组即可: 二.查看项目(必须) 三.查看组织 打开后可查看到如下界面,列出的项目为可操作项目 四.查看高校/企业信息 五.上 ...

  6. 玩玩vs Git 中国版 Gitee

    下载vs  下载 Gitee.VisualStudio.vsix https://gitee.com/GitGroup/CodeCloud.VisualStudio/attach_files 去git ...

  7. 《完美应用Ubuntu》第3版 何晓龙 著

    系统篇 用好Ubuntu掌握这些就够了 第1章 Ubuntu的进化 1.1 GNU/Linux的历史和文化 1.1.1 GNU/Linux是Linux的全称 1.1.2 Linux的诞生 1.2 Li ...

  8. git 常用操作

    查看某文件的某些行的变化历史: $ git log --pretty=short -u -L 2003,2005:Executor.cpp http://stackoverflow.com/quest ...

  9. Git - 使用指南

    GIT (分布式版本控制系统) 编辑 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1]  Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,可以 ...

随机推荐

  1. Redis中关于Hash键的一些问题

    Hash键存在的意义: 1.Hash键可以将信息凝聚在一起,而不是直接分散的存储在整个Redis中,这不仅方便了数据管理,还可以尽量避免一定的误操作: 2.避免键名冲突: 3.减少内存占用.(最重要的 ...

  2. Working out

    Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to look hot at the ...

  3. linux vi详解

    刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇. vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 ...

  4. 《DSP using MATLAB》示例Example 8.19

    代码: %% ------------------------------------------------------------------------ %% Output Info about ...

  5. python string 之 format

    python 在 2.6之后支持了string的format功能, 很强大, 应该成为使用习惯. http://blog.csdn.net/handsomekang/article/details/9 ...

  6. Python 3 利用 Dlib 和 sklearn 人脸笑脸检测机器学习建模

    0. 引言 利用机器学习的方法训练微笑检测模型,输入一张人脸照片,判断是否微笑: 精度在 95% 左右( 使用的数据集中 69 张没笑脸,65 张有笑脸 ): 图1 测试图像与检测结果 项目实现的笑脸 ...

  7. Google Chrome 调试JS简单教程[更新]

    题外话,刚开始我写这篇内容只是将自己了解的一些知识放上来,不巧的是我分析了我的来访日志,很多朋友都有这个需求,为了大家没有白来,我决定充实下这篇文章.最近更新时间2014-02-14 chrome版本 ...

  8. worldpress自定义页面

    一:wordpress制作自定义页面的方法 有时候我们需要制作一些个性化的页面,而不是直接用wordpress的page页面模板.这时候我们就需要自已写一个页面出来.下面介绍一下制作流程: 第一步:制 ...

  9. hadoop之 HDFS fs 命令总结

    版本:Hadoop 2.7.4 -- 查看hadoop fs帮助信息[root@hadp-master sbin]# hadoop fsUsage: hadoop fs [generic option ...

  10. i.e 和e.g 的区别

    i.e 和e.g 的区别 两者都是拉丁文缩写 i.e是id est的缩写,意思是that is. e.g是exempli gration的缩写,意思是for example;