Git 联机版
简介:
之前研究了 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 联机版的更多相关文章
- jenkins中通过git发版操作记录
之前说到的jenkins自动化构建发版是通过svn方式,今天这里介绍下通过git方式发本的操作记录. 一.不管是通过svn发版还是git发版,都要首先下载svn或git插件.登陆jenkins,依次点 ...
- 【重要】Pro Git 第二版 简体中文
不管是入门还是精通git,下面这本书都是必读,同时它也是官方推荐书籍. Pro Git 第二版 简体中文 我自己还收集了一份网页版的progit,但可能不是progit第二版. 下载地址 ...
- GIT 简单版
Git规范 by 程序亦非猿 2016.4.6 这又是一篇我在公司分享的,想制定一下Git的规范,有兴趣的可以看看~ 上一篇在这里 分支模型 每个项目必须要有master.develop分支. 每个开 ...
- git便携版 添加git-bash到右键菜单
注册表路径 HKEY_CLASSES_ROOT\Directory\Background\shell 新建项取名open in git 默认设置为右键显示的名称 Git Bash Here 新建字符串 ...
- Git教学教程--学生使用教程(非Git操作版)
一.注册(必须) 注册完成后由"教师"将你加入高校/企业组即可: 二.查看项目(必须) 三.查看组织 打开后可查看到如下界面,列出的项目为可操作项目 四.查看高校/企业信息 五.上 ...
- 玩玩vs Git 中国版 Gitee
下载vs 下载 Gitee.VisualStudio.vsix https://gitee.com/GitGroup/CodeCloud.VisualStudio/attach_files 去git ...
- 《完美应用Ubuntu》第3版 何晓龙 著
系统篇 用好Ubuntu掌握这些就够了 第1章 Ubuntu的进化 1.1 GNU/Linux的历史和文化 1.1.1 GNU/Linux是Linux的全称 1.1.2 Linux的诞生 1.2 Li ...
- git 常用操作
查看某文件的某些行的变化历史: $ git log --pretty=short -u -L 2003,2005:Executor.cpp http://stackoverflow.com/quest ...
- Git - 使用指南
GIT (分布式版本控制系统) 编辑 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.[1] Git的读音为/gɪt/. Git是一个开源的分布式版本控制系统,可以 ...
随机推荐
- sql语句中charindex的用法
假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来 搜索文字列和字符串.我将告诉你这两个函数是如何运转的, ...
- BZOJ3196 Tyvj1730 二逼平衡树 【树套树】 【线段树套treap】
BZOJ3196 Tyvj1730 二逼平衡树 Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名 ...
- 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录
我在 feature 分支开发得多些,但总时不时被高优先级的 BUG 打断需要临时去 develop 分一个分支出来解 BUG.git 2.6 以上开始提供了 worktree 功能,可以解决这样的问 ...
- 【oracle】Oracle安装概述
一.各种分布式数据库 MS SQL Server是中大型分布式关系型数据库. Oracle ,DB2(IBM)是超大型分布式关系数据库. MySql是中小型分布式关系型数据库. 二.Oracle O ...
- 编写浏览器和Node.js通用的JavaScript模块
长期以来JavaScript语言本身不提供模块化的支持, ES6中终于给出了 from, import等关键字来进行模块化的代码组织. 但CommonJS.AMD等规范已经被广为使用,如果希望你的Ja ...
- C#机器学习插件 ---- AForge.NET
目录 简介 主要架构 特点 学习之旅 简介 AForge.NET是一个专门为开发者和研究者基于C#框架设计的,这个框架提供了不同的类库和关于类库的资源,还有很多应用程序例子,包括计算机视觉与人工智能, ...
- springboot: 使web项目支持jsp
1.springboot为什么不推荐使用jsp? 参考地址:https://spring.io/blog/2012/10/30/spring-mvc-from-jsp-and-tiles-to-thy ...
- 原生 Javascript 编写五子棋
原文地址:原生 Javascript 编写五子棋 博客地址:http://www.extlight.com 一.背景 近一个月没写 Javascript 代码,有点生疏.正好浏览网页时弹出五子棋的游戏 ...
- ibernate+Struts2环境如何使用jqGrid。
因为公司项目需要,在Hibernate+Struts2的环境下,研究了一下如何使用jqGrid. 说实在的,Struts2+jqGrid不是一个很好的组合.因为jqGrid中很多功能,基本上都使用的是 ...
- angular-ui-bootstrap弹出框的使用(一)
在开发项目时,我们经常性的会遇到弹出框的需求,例如登陆,注册,添加信息等等....面对这一需求,我们当然也可以使用自己的双手进行编写,如果你时间充足可以试试. 今天我们讲解一下如何在angular框架 ...