引自如下文章:搭建属于你自己的 Git 服务器 – 知乎
在本篇教程中,我们考虑一个简单案例,我们有一个远程服务器和一台本地服务器,现在我们需要使用这两台机器来工作。为了简单起见,我们就分别叫它们为远程服务器和本地服务器。
在你的服务器上安装 Git
首先,在两边的机器上安装 Git。你可以从依赖包中安装 Git,在本文中,我们将使用更简单的方法:
sudo apt-get install git-core
为 Git 创建一个用户。
sudo useradd git<br>passwd git
为了容易的访问服务器,我们设置一个免密 ssh 登录。首先在你本地电脑上创建一个 ssh 密钥:
ssh-keygen -t rsa
这时会要求你输入保存密钥的路径,这时只需要点击回车保存在默认路径。第二个问题是输入访问远程服务器所需的密码。它生成两个密钥——公钥和私钥。记下您在下一步中需要使用的公钥的位置。
现在您必须将这些密钥复制到服务器上,以便两台机器可以相互通信。在本地机器上运行以下命令:
cat ~/.ssh/id_rsa.pub | ssh git@remote-server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
现在,用 ssh 登录进服务器并为 Git 创建一个项目路径。你可以为你的仓库设置一个你想要的目录。
现在跳转到该目录中:
cd /home/swapnil/project-1.git
现在新建一个空仓库:
git init --bare Initialized empty Git repository in /home/swapnil/project-1.git
现在我们需要在本地机器上新建一个基于 Git 版本控制仓库:
mkdir -p /home/swapnil/git/project
进入我们创建仓库的目录:
cd /home/swapnil/git/project
现在在该目录中创建项目所需的文件。留在这个目录并启动 git:
git init Initialized empty Git repository in /home/swapnil/git/project
把所有文件添加到仓库中:
git add .
现在,每次添加文件或进行更改时,都必须运行上面的 add 命令。 您还需要为每个文件更改都写入提交消息。提交消息基本上说明了我们所做的更改。
git commit -m "message" -a [master (root-commit) 57331ee] message 2 files changed, 2 insertions(+) create mode 100644 GoT.txt create mode 100644 writing.txt
在这种情况下,我有一个名为 GoT(《权力的游戏》的点评)的文件,并且我做了一些更改,所以当我运行命令时,它指定对文件进行更改。 在上面的命令中 -a 选项意味着提交仓库中的所有文件。 如果您只更改了一个,则可以指定该文件的名称而不是使用 -a。
举一个例子:
git commit -m "message" GoT.txt [master e517b10] message 1 file changed, 1 insertion(+)
到现在为止,我们一直在本地服务器上工作。现在我们必须将这些更改推送到远程服务器上,以便通过互联网访问,并且可以与其他团队成员进行协作。
git remote add origin ssh://git@remote-server/repo-<wbr< a="">>path-on-server..git
现在,您可以使用 pull 或 push 选项在服务器和本地计算机之间推送或拉取:
git push origin master
如果有其他团队成员想要使用该项目,则需要将远程服务器上的仓库克隆到其本地计算机上:
git clone git@remote-server:/home/swapnil/project.git
这里 /home/swapnil/project.git 是远程服务器上的项目路径,在你本机上则会改变。
然后进入本地计算机上的目录(使用服务器上的项目名称):
cd /project
现在他们可以编辑文件,写入提交更改信息,然后将它们推送到服务器:
git commit -m 'corrections in GoT.txt story' -a
然后推送改变:
git push origin master
我认为这足以让一个新用户开始在他们自己的服务器上使用 Git。 如果您正在寻找一些 GUI 工具来管理本地计算机上的更改,则可以使用 GUI 工具,例如 QGit 或 GitK for Linux。
