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 "[email protected]" # 全部默认回车

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 ‘[email protected]‘
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 [email protected]:wangxiaoqiangs/MyTest.git # 本地仓库跟远程仓库关联
shell > git push -u origin master # 将本地仓库推送到远程仓库,第一次推送时要加 -u 参数
Counting objects: 3, done.
Writing objects: 100% (3/3), 237 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]: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 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
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/20150902/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
1 files changed, 124 insertions(+), 0 deletions(-)
create mode 100644 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: 4, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 1.33 KiB, done.
Total 3 (delta 0), reused 0 (delta 0)
To [email protected]: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 [email protected]:wangxiaoqiangs/GithubTest.git # 从远程仓库克隆一份到本地
Initialized empty Git repository in /git/GithubTest/.git/
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), 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 [email protected]: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
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 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 | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 T.txt

shell > git branch -d dev # 删除 dev 分支,也可以不删
Deleted branch dev (was 59b4093).

shell > git branch # 仓库中再次只剩下主分支了
* master

shell > git push origin master # 将修改推送到远程仓库
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 279 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
To [email protected]: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 参数,可以在删除分支后也能查到合并日志

时间: 2024-11-07 22:18:04

Git 联机版的相关文章

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

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

GIT 简单版

Git规范 by 程序亦非猿 2016.4.6 这又是一篇我在公司分享的,想制定一下Git的规范,有兴趣的可以看看~ 上一篇在这里 分支模型 每个项目必须要有master.develop分支. 每个开发人员拥有一个自己的分支,如yfy.chz. master 分支 master 分支只能存在release版本的代码,并需要对每个release打对应的tag. develop 分支 develop 由master分支检出,它作用主要是日常开发合并代码,并与master分支做交互. 当参与开发的人员

玩玩vs Git 中国版 Gitee

下载vs  下载 Gitee.VisualStudio.vsix https://gitee.com/GitGroup/CodeCloud.VisualStudio/attach_files 去gitee注册个账号 仓库主址: https://gitee.com/vicwjb/CADTools第一次fork项目到自己的账号内,成为自己的仓库. 然后一定要点自己仓库上面的"刷新"图标,同步一遍自己的仓库和"主干"仓库. 团队管理器,连接Gitee账号 克隆项目   

发布一款基于silverFoxServer构建的一套象棋联机对战程序!

基于silverFoxServer构建的一套象棋联机对战程序 点进入或去旁观进入房间 整合到了discuz论坛,主要也是体现silverFoxServer的理念,即没有自已的数据库,依赖其它系统, 插件名称:        Discuz中国象棋联机版插件插件来源:        原创插件适用版本:        Discuz! X1.5 - X3.2语言编码:        GBK简体 UTF8简体 BIG5繁体 UTF8繁体 最后更新时间:        2015-09-8插件作者:     

git使用教程

一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器.集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库

git - 简明指南

助你入门 git 的简明指南,木有高深内容 ;) 作者:罗杰·杜德勒 感谢:@tfnico, @fhd 和 Namics如有纰漏,请在 github 提报问题 安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹,打开,然后执行 git init以创建新的 git 仓库. 检出仓库 执行如下命令以创建一个本地仓库的克隆版本:git clone /path/to/repository 如果是远端服务器上的仓库,你的命令会是这个样子

git 常用命令总结

Git这个词本身很喜感,学Git更欢乐,因为书里没啥难懂的知识,看的时候,让人心花怒放,心想,啥时候看书这么快了..写iMiss时,和东东用Github操作代码,非常方便,感叹遇上了好时代,一上手就有Git用,还不用给地主家交租,连看书都可以直接跳过像<CVS版本库到Git的迁徙>这样的章节..Git实在是个好东西,它让你笑,它让你叫,它让你跳. 刚开始用时,遇到过些小麻烦,比如,commit内容写错了,merge到了错误的分支,最关键的是,不知道怎么用Git画出优雅的下水道等等...后来慢慢

Pro Git 读书笔记 初识Git

版本控制系统即VCS(version control system)是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 除了对软件源代码的文件作版本控制,实际上,你可以对任何类型的文件进行版本控制.有了版本控制我们就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,可以比较文件的变化细节,查出最后是谁修改了哪个地方,从而找出导致bug出现的原因,又是谁在何时报告了某个功能缺陷等等. 分布式版本控制系统(Distributed Version Cont

git - 简明指南(转)

安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹,打开,然后执行  git init 以创建新的 git 仓库. 检出仓库 执行如下命令以创建一个本地仓库的克隆版本: git clone /path/to/repository  如果是远端服务器上的仓库,你的命令会是这个样子: git clone [email protected]:/path/to/repository 工作流 你的本地仓库由 git 维护的三棵“树”组成