当前位置:首页 » 数据仓库 » 如何配置git开源仓库
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

如何配置git开源仓库

发布时间: 2022-04-11 10:25:20

❶ 怎么在自己的服务器上建立git仓库

1.架设Git服务器我们以Ubuntu为例。首先,在git服务器上创建一个名为'git'的用户,并为其创建一个.ssh目录。并将其权限设置为仅git用户有读写权限$sudoadsergit$sugit$cd$mkdir.ssh$chmod700.ssh接下来,把开发者的SSH公钥添加到这个用户的authorized_keys文件中。假设你通过电邮收到了几个公钥并存到了临时文件里。重复一下,公钥大致看起来是这个样子:$cat/tmp/id_rsa.john.pubssh-/ww+/T17//5zytK6Ztg3RPKK+/nLF6JLtPofwFBlgc+AYYgPqdAv8JggJICUvax2T9va5gsg-keypair只要把它们逐个追加到authorized_keys文件尾部即可,同时将authorized_keys设置为仅git用户有读写权限。$cat/tmp/id_rsa.john.pub>>~/.ssh/authorized_keys$cat/tmp/id_rsa.josie.pub>>~/.ssh/authorized_keys$cat/tmp/id_rsa.jessica.pub>>~/.ssh/authorized_keys$chmod600~/.ssh/authorized_keys现在可以用--bare选项运行gitinit来建立一个裸仓库,这会初始化一个不包含工作目录的仓库。$cd/opt/git$mkdirproject.git$cdproject.git$git--bareinit这时,Join,Josie或者Jessica就可以把它加为远程仓库,推送一个分支,从而把第一个版本的项目文件上传到仓库里了。值得注意的是,每次添加一个新项目都需要通过shell登入主机并创建一个裸仓库目录。我们不妨以gitserver作为git用户及项目仓库所在的主机名。如果在网络内部运行该主机,并在DNS中设定gitserver指向该主机,那么以下这些命令都是可用的:#在John的电脑上$cdmyproject$gitinit$gitadd.$gitcommit-m'initialcommit'$gitremoteaddorigingit@gitserver:/opt/git/project.git$gitpushoriginmaster这样,其他人的克隆和推送也一样变得很简单:$gitclonegit@gitserver:/opt/git/project.git$vimREADME$gitcommit-am'fixfortheREADMEfile'$gitpushoriginmaster用这个方法可以很快捷地为少数几个开发者架设一个可读写的Git服务。作为一个额外的防范措施,你可以用Git自带的git-shell工具限制git用户的活动范围。只要把它设为git用户登入的shell,那么该用户就无法使用普通的bash或者csh什么的shell程序。编辑/etc/passwd文件:$sudovim/etc/passwd在文件末尾,你应该能找到类似这样的行:git:x:1000:1000::/home/git:/bin/sh把bin/sh改为/usr/bin/git-shell(或者用whichgit-shell查看它的实际安装路径)。该行修改后的样子如下:git:x:1000:1000::/home/git:/usr/bin/git-shell现在git用户只能用SSH连接来推送和获取Git仓库,而不能直接使用主机shell。尝试普通SSH登录的话,会看到下面这样的拒绝信息:$sshgit@gitserverfatal:WhatdoyouthinkIam?Ashell?Connectiontogitserverclosed.这里提供的方法,组内所有成员对project都有读写权限,也就是说每个分支都可以push代码,如果需要更加细致的权限控制,请使用Gitosis或者Gitolite。2.搭建Gitweb安装gitweb之后就可以通过网站访问我们的项目了。就像gitweb.conf#pathtogitprojects(.git)$projectroot="/opt/git";至此gitweb就可以使用了,现在可以通过config[core]repositoryformatversion=0filemode=truebare=true[hooks]mailinglist="[email protected],[email protected]"#收件人列表[email protected]#送件人地址emailprefix="[Projectcommit]"#邮件标题前缀showrev="gitshow-C%s;echo"#不只显示有变化的文件,同时也显示改变的内容为了使邮件显示的更清楚,还要修改一下工程目录当中的description文件,在description文件中,默认第一行是项目名称,所以要在第一行填入该项目的名称,这个在邮件中会有显示。$vim/opt/git/project.git/descriptionProject_A

❷ windows 下如何搭建git仓库

第一,下载并安装git

目前windows版本的git有几种实现,但我们选择msysgit发行版,这是目前做得兼容性最好的。

使用默认配置安装Git。这个不用多说,一路Next就可以,如果对各种选项不熟悉,建议使用默认配置,没问题的。

第二,创建github账号
什么是Git和GitHub

Git —The stupid content tracker, 傻瓜内容跟踪器,是一个由Linux内核开发者Linus为了更好地管理Linux内核开发而创立的分布式版本控制软件。
GitHub — 学生做版本控制最讨厌的就是找服务器,配置太麻烦了。GitHub这个网站为每个用户提供服务器托管其Git代码库,免费空间为300M。注册GitHub后你就会有0.3G的免费空间,不过只能创建公开项目。

❸ 如何创建git仓库的工

  • 首先, 先到github网站注册账号。

  • 2

    然后创建一个项目, Create a new repository,如下图所示:

    步骤阅读

  • 8

    输入完title和key后选择Add SSH key按钮完成添加。

  • 9

    现在回到终端, 测试下是否能连接到github服务器

    ssh -T [email protected]

    看到这样的提示就说明设置好了

    bogon:ZXTabBarController jackey$ ssh -T [email protected] Hi zhouxihi! You've successfully authenticated, but GitHub does not provide shell access.

  • 10

    然后就可以将本地文件push到远程仓库了

    首先初始化本地仓库

    git init

    添加文件

    git add .

    写入缓存

    git commit -m 'first upload'

    添加远程仓库

    git remote add origin [email protected]:zhouxihi/ZXTabBarController.git

    推送文件到远程仓库

    git push -u origin master

    显示100%. done就可以了

    bogon:ZXTabBarController jackey$ git push -u origin master Counting objects: 57, done. Delta compression using up to 4 threads. Compressing objects: 100% (51/51), done. Writing objects: 100% (57/57), 86.20 KiB | 0 bytes/s, done. Total 57 (delta 14), reused 0 (delta 0) remote: Resolving deltas: 100% (14/14), done. To [email protected]:zhouxihi/ZXTabBarController.git * [new branch] master -> master Branch master set up to track remote branch master from origin.

  • 11

    以后每次有修改本地文件就只要下面三个步骤就可以推送到服务器了

    ->git add.

    ->git commit -m 'second upload'

    ->git push -u origin master

  • 12

    如果想从服务器拉下来, 可以用指令

    git clone XXX.git

❹ git的使用方法,如何配置

使用git 自从git-1.5.4 , 'git-xyz' 这种用法就不提倡了,而推荐 'git xyz' 风格。 git 的后续版本中将在 make install 时不再安装 'git-xyz' 这些 hardlinks 。 当如果执行 git --exec-path 输出的目录中依然有 git-xyz 这些脚本,你还是可以把这个路径加到 PATH 环境变量中, 这样还能够使用 git-xyz 形式的脚本。 config ------ 我的一些简单的配置: $ git-config user.name "Jike Song" $ git-config user.email [email][email protected][/email] $ git-config core.editor vim $ git-config core.pager "less -N" $ git-config color.diff true // 显示 diff 时色彩高亮 $ git-config alias.co checkout // 给 git checkout 取个别名,这样只输入 git co 即可 $ git-config sendemail.smtpserver /usr/bin/msmtp 注意,这会在当前 repository 目录下的 .git/config 中写入配置信息。 如果 git-config 加了 --global 选项,配置信息就会写入到 ~/.gitconfig 文件中。 因为你可能用不同的身份参与不同的项目,而多个 项目都用 git 管理,所以建议不用 --global 配置。 $ git-val -l // 列出 git 变量 init ---- $ git-init-db // 创建一个 .git/ 目录,初始化一个空的 git 仓库 //这个目录在git-clone时也会创建。也就是说clone时会自动初始化git //仓库里需要的东西 clone ----- $ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git [dir name] [dir name] 是你想让这个仓库叫什么名字。 如果不指定,就会等同于目标仓库的名字。 注意,这种 git server 形式的 repository ,都有一个 filename.git 文件; 而对于 *.git 的操作,也可以 针对.git 所在的目录: $ mkdir tmp/ $ cd tmp/ $ git-clone ~/Sources/linux-2.6 或者通过 ssh : $ git-clone [email][email protected][/email]:/home/arc/Sources/linux-2.6 此时当前目录下有一个 .git/ 目录 . 以下我们都在 linux-2.6/ 下演示: 使用git 自从git-1.5.4 , 'git-xyz' 这种用法就不提倡了,而推荐 'git xyz' 风格。 git 的后续版本中将在 make install 时不再安装 'git-xyz' 这些 hardlinks 。 当如果执行 git --exec-path 输出的目录中依然有 git-xyz 这些脚本,你还是可以把这个路径加到 PATH 环境变量中, 这样还能够使用 git-xyz 形式的脚本。 config ------ 我的一些简单的配置: $ git-config user.name "Jike Song" $ git-config user.email [email][email protected][/email] $ git-config core.editor vim $ git-config core.pager "less -N" $ git-config color.diff true // 显示 diff 时色彩高亮 $ git-config alias.co checkout // 给 git checkout 取个别名,这样只输入 git co 即可 $ git-config sendemail.smtpserver /usr/bin/msmtp 注意,这会在当前 repository 目录下的 .git/config 中写入配置信息。 如果 git-config 加了 --global 选项,配置信息就会写入到 ~/.gitconfig 文件中。 因为你可能用不同的身份参与不同的项目,而多个 项目都用 git 管理,所以建议不用 --global 配置。 $ git-val -l // 列出 git 变量 init ---- $ git-init-db // 创建一个 .git/ 目录,初始化一个空的 git 仓库 //这个目录在git-clone时也会创建。也就是说clone时会自动初始化git //仓库里需要的东西 clone ----- $ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git [dir name] [dir name] 是你想让这个仓库叫什么名字。 如果不指定,就会等同于目标仓库的名字。 注意,这种 git server 形式的 repository ,都有一个 filename.git 文件; 而对于 *.git 的操作,也可以 针对.git 所在的目录: $ mkdir tmp/ $ cd tmp/ $ git-clone ~/Sources/linux-2.6 或者通过 ssh : $ git-clone [email][email protected][/email]:/home/arc/Sources/linux-2.6 此时当前目录下有一个 .git/ 目录 . 以下我们都在 linux-2.6/ 下演示: pull ---- $ git-pull // 更新本地的 git tree 。 如果自从你 clone 了 linus tree 之后, linus tree //有新的改动,那么把这些更改更新到你的本地tree中 //类似于cvs update pull ---- FYI: git-clone 和 git-pull 都会默认调用 git-merge 。 FYI: 每天 git-pull 更新技巧: 1) git-describe ,例如目前是 v2.6.26-rc8-12 2) git-pull -v 3) git-describe ,例如是 v2.6.26-rc8-22 4) git-log -p -10 查看变化 diff ---- $ git-diff /* 列出自己本地的 tree 中已修改、但却未 commit 的改动 这也是产生 patch 的方式 ( 用来提交的 patch 需要先 commit 到自己的 tree 里, 然后git-format-patch) 。 注意,使用 git-diff 产生的 patch 都应该在 patch(1) 时指定 -p1 ,或者直接使用 git-apply 打补丁 */ 选项: --color diff 语法高亮 ( 可以 git-config color.diff true) --ignore-space-at-eol 忽略行尾的 whitespace -b --ignore-space-change 忽略行尾的 whitespace ,并且认为所有的 whitespace 都是一样的 -w --ignore-all-space 比较两行的时候,完全忽略 whitespace 。这样,即使是一行有很多 whitespaces ,另一行文字一样但是没有 whitespace , git 也认为这两 行内容一致。 $ git-pull // 更新本地的 git tree 。

❺ 如何搭建git版本库

服务端配置
1、安装git

2、新建一个用户,只能用来上传代码,而不能通过ssh登录,比如git用户
adser git
chsh -s $(command -v git-shell) git
使用git-shell替换bash ,这样git用户就不能通过ssh登录
这一步会有警告,提示git-shell不在shell列表里,不用担心。

3、添加ssh公钥,在/home/git/.ssh/authorized_keys里添加客户端的公钥,一行一个。
如果没有文件,可以新建
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys

客户端生成公钥的方法是 ssh-keygen,
windows的在C:\Users\用户名\.ssh\ 目录下,打开id_rsa.pub

4、初始化一个空的git仓库
cd /var
git init --bare sample.git
chown -R git:git sample.git
这一步是让目录可以被git用户修改,否则会出现“permission denied”错误。

客户端
1、可以git clone了
git clone git@服务器:/var/sample.git 即服务器上的文件路径
或者ssh,建议ssh,方便设置端口号
git clone ssh://git@服务器:端口号/var/sample.git

❻ 如何搭建git私有仓库

以ubuntu服务器为例,如果要创建小范围的私有git服务器,是非常简单的,只需要如下几个简单步骤:
Step 1: 安装git
直接通过sudo apt-get install git即可完成。
Step 2: 创建git用户
git用户用来通过SSH连接git服务,输入命令:
$ sudo adser git

Step 3: 创建证书登录
首先收集所有需要登录的用户公钥,然后导入到/home/git/.ssh/authorized_keys文件即可。
Step 4: 初始化git仓库
假设仓库位于/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.git

这样就创建了一个裸仓库,裸仓库没有working dir,因为服务器上的git仓库纯粹是为了共享,仓库目录一般以.git结尾。然后把owner改为git:
$ sudo chown -R git:git sample.git

Step 5: 防止登录shell
出于安全考虑,git用户不应该登录shell,可以编辑/etc/passwd,找到类似一行:
git:x:1001:1001:,,,:/home/git:/bin/bash

改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell。
Step 6: 克隆仓库
在客户端就可以通过ssh克隆仓库了:
$ git clone git@server:/srv/sample.gitCloning into 'sample'...warning: You appear to have cloned an empty repository.

然后,就可以正常推送了:
$ touch README$ git add README$ git commit -m "add readme"$ git push origin masterCounting objects: 3, done.Writing objects: 100% (3/3), 212 bytes, done.Total 3 (delta 0), reused 0 (delta 0)To git@ubuntu:/srv/sample.git
* [new branch] master -> master

❼ 搭建git服务器需要什么样的配置

搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
假设你已经有sudo权限的用户账号,下面,正式开始安装。
第一步,安装git:
$ sudo apt-get install git

第二步,创建一个git用户,用来运行git服务:
$ sudo adser git

第三步,创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.git

Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
$ sudo chown -R git:git sample.git

第五步,禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash

改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
第六步,克隆远程仓库:
现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.

剩下的推送就简单了。

管理公钥
如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。
这里我们不介绍怎么玩Gitosis了,几百号人的团队基本都在500强了,相信找个高水平的Linux管理员问题不大。

管理权限
有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写权限会精确到每个分支甚至每个目录下。因为Git是为Linux源代码托管而开发的,所以Git也继承了开源社区的精神,不支持权限控制。不过,因为Git支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的。Gitolite就是这个工具。

❽ 如何在服务器新建git 代码仓库

git
pull
如果pull时提示“You
asked
me
to
pull
without
telling
me
whichbranch
you
want
to
merge
with”,
说明本地有新建分支且已同步到服务器上,当从服务器下载代码时需要在本地config中配置该分支的merge信息。
配置时可以参考下面的例子:
$
git
config
branch.master.remote
origin
//master是分支名,origin是远程仓库名
$
git
config
branch.master.merge
refs/heads/master!

❾ windows本地git仓库 怎么配置

载Git官网站载Git并安装安装windows 目录点右键快捷菜单Git相应功能

2
进入Git Gui配置git用户名邮箱

3
初始化Git代码库创建文件夹并进入点击右键"Git init here",创建代码仓库

4
添加文件任何文件都git记录文件操作状态 进入"Git Gui"

5
选择未缓存改列表添加注释并提交改

6
提交改传服务器比github

❿ 如何在Visual Studio中配置git

用 Visual Studio 可以配合 Git 工具做版本管理。也可以直接将工程同步到 GitHub 上。配置过程非常简单。
首先你要安装 GIt,安装和配置步骤见 安装 Git,Windows 上只要替换其中的安装步骤,其他类似。
在 Visual Studio 安装插件 Git Source Control Provider
然后在 tools->options->source control 中配置源代码管理,将默认的修改为 Git Source Control Provider
配置好后会弹出选择 Git 的 bin 目录,将安装目录填上即可,以后也可以在选项中再次填上
因为用户名,还有 GItHub 的 ssh key 已经在 安装 Git 中完成了,这里不需要再做一边。
我们新建一个工程,然后可以在解决方案的右键菜单中看到多出来的一项。这里如果你选择 TortoiseGit 的话,弹出的菜单是不一样的,会比较丰富。我安装的是最简单的。
选择 Pending Changes 就可以 commit changes 了,这里要勾选改变的源文件,相当于 git add ....
如果要 push 到 GitHub 的远程仓库 ,我还没找到选项,还是只能用 Git Bash 命令行。不过,push 不是经常做的,所以影响不大。如果嫌烦的话,可以装 TortoiseGit,在 Visual Studio 中就能有相应的选项,完全不要命令行啦。
1. VS2015在对Git的支持
VS2015是微软IDE集成开发环境的重量级升级,微软除了将触角延伸至iOS和Android平台以及Unity,Unreal和Cocos等游戏开发领域中。而且在进一步集成Git。
可以说在不需要第三方插件的前提下,就可以使用Git来进行团队开发。
2. 在VS2015中使用Git
下面介绍如何在VS2015中使用Git进行团队开发。
2.1 在Git服务器上新建版本库
在使用VS2015进行团队开发前,我们先在Git服务器上创建新的版本库。
打开我们已经安装好的GitStack(如查直接看本篇的同学,可以先看一下服务端环境搭建一文URL:使用GitStack+TortoiseGit 图形界面搭建Git环境)
在GitStack中创建新的版本库,名为“MyGitForVsObject”,并新建两个用户"yubinfeng"和“zhangsan”,再新建一个组"MyGitGroup",将这两个用户加入到该组,并给版本库授权该组。具体操作这里不再赘述,不了解的朋友请看上面的URL.
完成后如下所示:
2.2 在VS2015中克隆远程版本库
我们先在VS2015中新建一个解决方案,在工具栏,点“团队”=》“管理连接”
按上图所示,右打开的 团队资源管理器中,输入远程Git URL,点击克隆按钮,即可完成在VS2015中克隆远程版本库了
克隆成功后,可以在 本地Git存储库 中看到 本地版本库已经 从服务器上克隆下来了。
2.3 Git全局设置
完成版本库克隆后,我们需要在Git中进行一次全局设置。
工具栏 - 团队 - 管理连接,打开团队资源管理器
点击主页按钮,如下图
点击设置,选择全局设置,完成如下三项更改,点更新
用户名:将作为你以后版本提交后日志显示的名称
电子邮件:团队联系使用
默认存储库位置:最好进行一下改动,默认在C盘,防止丢失
2.4 Git存储库设置
存储库设置和全局设置类同,如下
工具栏 - 团队 - 管理连接,打开团队资源管理器
点击主页按钮,选择 设置 - 存储库设置
如上图,其他内容不需要设置,主要 添加一下远程 。这将是以后获取新版本和推送到服务器的地址
此时,我们可以看到项目文件前面有一个小锁,并且代码中已经有了Git的信息,表示项目已经已经受到Git控制
2.5 第一次向Git服务器发布项目
我们上面看到的所有Git的受控信息,只是相对于克隆到本地的版本库,此时Git服务器并没有接收到这些工程文件,下面我们要做的将是第一次将本地版本库中的工程文件同步到Git服务器,即项目发布
工具栏 - 团队 - 管理连接,打开团队资源管理器
点击小房子,回到Git主页,点击同步
此时,出现如下界面
+
我们第一次将本地分支发布到远程服务器,点击发布
输入远程URL,发布,即可发布到远程库
我们可以打开GitStack查看日志,如下:
上面显示的时间,为你在本地操作的时间。我们可以看到Git作为分布式版本控制系统,你在离线进行操作,在推送时,显示的均为你操作时间,而非推送时间。
2.6 拉取、获取、合并、提交、推送、同步
项目开发过程中,我们通常进行下面几种操作,我一次性介绍,这个和上篇TortoiseGit类似,直接看本篇的同学,可以参考上篇,URL:图形化Git客户端工具TortoiseGit
拉取(Pull):将远程版本库合并到本地版本库; 相当于(Fetch+Meger)
获取(Fetch):从远程版本库获得最新版本
合并(Meger):将两个版本库进行合并操作
提交(Commit):将所做的更改,存入本地暂存库
推送(Push):将所做的更改,存入远程版本库
同步(Pull+Push):先将远程库拉取,再将本地库推送到远程库 注意这个顺序; 相当于(Pull+Push)
我们对文件进行修改后,文件前有一个小对号,右击,点提交
我们在提交文件时,记得填写备注,在团队开发中,保持一个良好的习惯
提交在这里有三种:
提交:即将文件存入本地版本库
提交和推送:即将文件更改同时存入本地版本库和远程版本库
提交和同步:将文件更改提交到本地库的,再从远程版本库拉取新版本到本地,再推本地库到远程版本库
注意:
这里的操作,不针对当前文件,而是对所有变更进行提交、推送或同步。
2.7 创建分支
对于创建分支在上篇(URL:图形化Git客户端工具TortoiseGit)中已经介绍过了,这里主要介绍一下如何基于Vs2015创建Git分支
工具栏 - 团队 - 管理连接,打开团队资源管理器
点击小房子,回到Git主页,点击分支
打开分支界面,在master分支上右击,选择 "从选定项创建本地分支"
在这里需要注意我们创建分支,有两种:
(1)创建本地分支
(2)创建远程会支
本地分支有创建前,一定要获取最新版本;远程分支,则要求所有成员最好能推送更改。
至于分支的创建是基于远程还是本地,最好能在团队成员之间达成一致。
下面介绍两种分支的创建方法
先看创建本地分支
输入一个分支名称,创建即可。
远程分支,我们需要选择如下
在创建远程分支时,一定要把跟踪远程分支,这个取消选择,否则将创建了一个跟踪分支,我们就不能发布了。
创建完成后,如下:
分支创建成功,接下就是发布到服务器
右击,点发布分支,即可。
可以看到,分支已经发布到服务器上了。
在服务器上通过GitStack也可以看到,多了一个分支。
2.8 切换和合并分支
在VS2015中切换分支非常简单,只要在分支名称上双击,就可以了,项目资源管理器中的文件随之变化。
这里主要看一下合并,
我们先切换到新建的分支"2016-2-7",在分支名称右击,选择 合并自...
选择master ,点击合并,即可完成将master合并到新分支了。
2.9 删除分支
删除分支,首先要从远端删除,如下:
注意,如果要删除刚才新建的分支,和上篇TortoiseGit一样,要切换到另一分支操作。
远端删除后,服务器上的分支就被删除了,本地的分支,直接删除即可。
3. 使用VS2015+HubGit创建开源项目
前面我们介绍了Git作为一个分布式版本控制系统,其最大的优势就是适合开源项目管理。如果你还没有托管一个开源项目,那么你Out了。
目前即于Git开源项目托管平台非常多,Hubgit.com可以说非常知名,只是免费用户,只能托管开源项目。
本篇我介绍一下如何在VS2015中创建并开发自己的开源项目,以Hubgit为例,其他平台使用都差不多。
3.1 创建Github用户
创建完成后,点右上角Sign in进入Github
3.2 在Github上创建版本库
进入GitHub主页,点右上的 + 创建一个版本库
打开以后,如下
按图示完成,就可以了。
点右上角按钮,”your profile“查看你创建的版本库 test,点击进入
接下来的操作,我们已经很熟悉了,就是在VS2015中打开GitHub版本库,进入开源项目的世界了。。。
3.3 在VS2015上发布自己的开源项目
这一步相信,大家一定非常熟悉了,对,就和上面介绍的克隆自己服务器上的版本库一样。
然后,我们新建一个解决方案或打开一个已有的解决方案
创建完成后,
工具栏 - 团队 - 管理连接,打开团队资源管理器
点击小房子,回到Git主页,点击 更改
点击 提交和推送,这时提示一个身份验证,这是必须的,使用 前面注册的用户名和密码即可,当然这是开源项目,只要有Github用户,都可以进行版本克隆和提交代码
推送完成后,我们可以在github上查看
没问题,刚才推送的解决方案已经更新到github服务器了。
提交、获取、推送、分支,这些我就不用再说了吧,和上面介绍的完全一样了
3.4 如何加入别人的开源项目?
如何加入别人的开源项目?也就是别人如何参与你的开源项目,意思是一样的,就是除原创建者之外的人,要如何克隆版本库?
比如比较着名的开源项目Jquery,你如何开发他的项目呢?
你又不能直接在VS 2015中克隆人家的库,其实这个并不难办,看下面的图:
先进入Jquery的项目URL,然后点 右上的 Fork ,就将这个项目加入到你的库里了,相当于直接克隆了一个副本到你的GitHub上。
这下,你就可以用自己的帐号,在VS上克隆你的GitHub中的Jquery项目了,你可以加入自己的idear,如果你希望jquery的官方库能接受你的修改,你就可以在GitHub上发起一个pull request。当然,官方是否接受你的pull request就不一定了。
最后,我忘记说一件事了,我们刚才建的版本库test,别人也可以用同样的方法进行参与,只是你一定要记得,将初始库设为只读。
3.5 如何删除创建的版本库
先进入你的版本库,点右边的setting,进入设置页,拉到最底下
点击 删除该版本库,再输一次版本库名称,即可。
3.6 桌面版的GitHub
如果你在网站上看项目进度等信息,感觉不方便 ,你可以下载安装桌面版的Github
有windows和mac版本,可以通过桌面版完成网站上的所有功能。
使用GitHub进行团队协作的流程,可以参考这个视频,感觉非常好,推荐一下,
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&&
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElementwww.huashijixun.com?else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this,
4. 本节要点:
本篇主要介绍了如何在Visual Studio 2015中使用Git,然后介绍了目前流行的一些开源托管平台,最后以GitHub为例,介绍了如何创建自己的开源项目和参与别人的开源项目。
如果你还没有自己的开源项目,快点动手申请一个Github帐号,共享出你的项目吧~开源需要每个人的努力~