Mac上Git服务器的搭建及发布
Git是一种分布式的版本管理系统,能让不同版本之间的切换修改更加方便,类似文件分不同时间备份,需要时找回其中一份代替。区别于SVN的集中式,支持离线工作。
首先搭建Git服务器
一、Mac开启SSH服务
Mac OS默认嵌入了SSH服务,所以只需要简单的设置就可以了。
系统偏好设置 → 共享 → 远程登陆 → 仅这些用户
二、开启SSH免密码登陆(非必要)
1、打开终端,执行以下命令后输入密码,即可得到公钥和私钥。
在文件~/.ssh中,id_rsa为私钥,id_rsa.pub为公钥,打开id_rsa.pub,复制里面的key。
ssh -keygen -t rsa
2、在远程主机上信任公钥
打开远程Mac主机,进入到~/.ssh目录,打开名字为“authorized_keys”的文本文件(没有的话,就创建它),然后把客户端创建的公钥添加去。
~~
三、新建仓库
在文件~/git/下创建一个新的Git仓库(库名为test)
方法一:
下载SourceTree软件,用软件创建
新建 → 创建本地仓库 → 输入目标路径 → 输入库名 → 创建
方法二:
终端输入命令来创建Git仓库
cd <文件名> ##打开文件
mkdir <文件名> ##创建名为<文件名>的文件
ls<文件名> ##展示文件<文件名>中的内容
注:路径 1/2 是指1目录下即2同级目录中, 1/2/ 是指2目录下
(1)使用当前目录作为Git仓库
终端窗口位于~/git/test/,用以下命令初始化
git init
(2)使用指定文件夹作为git仓库
终端位于~/git/test,即test同级位置,用以下命令初始化test为仓库
git init test
命令执行完成之后会在仓库目录test下生成一个隐藏文件 .git
~~
四、配置新建的git仓库
进入刚才新建的仓库目录 ~/git/test/,我们可以shift+command+ . 找到 .git 隐藏文件夹,该文件夹内有一个叫config的配置文件,在文本后面追加以下代码,如图:
[receive]
denyCurrentBranch = ignore
至此,服务器搭建完毕
刚才新建的test仓库的url地址就是 account@127.0.0.1:git/test
account就是Mac主机的ssh登录账户,127.0.0.1就是Mac主机的ip地址或域名,git/test就是要访问的仓库相对 ~/目录 的相对路径。
以下假设位于Git仓库的根目录下,即test下
Git工作流介绍
本地仓库由 git 维护的三棵"树"组成。第一个是工作目录,它持有实际文件;第二个是 暂存区(Index),它像个缓存区域,临时保存你的改动;最后是 HEAD,它指向你最后一次提交的结果。改动已在本地仓库的 HEAD 中,执行push将这些改动提交到远端仓库
文件流: 文件 → 暂存区 → HEAD → 远端仓库
操作过程:添加文件 → 提交版本 → 发布版本
需要命令: add → commit → push
一、添加文件
我们现在创建了一个仓库,但是仓库里什么都没有,需要添加文件,用命令
git add <文件名>
二、提交版本
(1)新增的文件提交
现在我们已经添加了这些文件,我们希望它们能够真正被保存在Git仓库。
为此,我们将它们提交到仓库。
git commit -m "Adding files"
-m 如果您不使用-m,会出现编辑器来让你写自己的注释信息。
~~
(2) 修改的文件提交
-a 当我们修改了很多文件,而不想每一个都add,想commit自动来提交本地修改,我们可以使用-a标识。可将所有被修改或者已删除的且已经被git管理的文档提交到仓库中。
== 注意:-a 不会造成新文件被提交,只能修改。==
git commit -a -m "Changed some files"
三、发布版本
先从服务器克隆一个库并上传。
git clone ssh://example.com/~/www/project.git
修改之后可以进行推送到服务器。
git push ssh://example.com/~/www/project.git
四、取回更新
下面指令表示,更新你的本地仓库至最新改动,当前分支自动与唯一一个追踪分支进行合并。
git pull
参考博文:
https://blog.youkuaiyun.com/baight123/article/details/51023456?ops_request_misc=&request_id=&biz_id=102&utm_term=git服务器搭建macos&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-2-51023456.first_rank_v2_pc_rank_v29
https://www.runoob.com/w3cnote/git-five-minutes-tutorial.html