git 两台电脑之间同步,两台电脑同属一个局域网,可以是windows和windows,也可以是windows和ubuntu。 (不用安装Java和Gitblit和OpenSSH),可以不用连接外网。

Git

Git不同于CVS和SVN这种集中式的版本控制系统个,它是分布式的,是去中心化的,既可以作为服务端,也可以作为客户端,

git仓库 局域网 git局域网同步_Windows


集中式

git仓库 局域网 git局域网同步_Server_02


分布式

安装Git

准备两台连接同一个网络的电脑A(看成Client端)和电脑B(看成Server端),为Server端和Client端都安装Git

配置Git

$ git config --global user.name "Your Name"
$ git config --global user.email "youremail@address.com.cn"
$ git config -l
# 可以查看配置好的name 和 email等

Server端创建repository

mkdir myrepo
touch readme.txt
touch somebash.sh
touch somescript.py
git init
git add .
git commit -m "add readme"

两台电脑,一台作为Server端用于提供repository,另一台作为Client从Server端获得repository

Server端创建bare repository

打开Git Bash,电脑Server端

# 此电脑->映射网络驱动器
# 此处映射到N盘,也可以映射到别的盘
cd N:\
mkdir myrepo
# cd D:\share\Git_Server\myrepo
cd myrepo
git init --bare
# Initialized empty Git repository in //DESKTOP-ABCDEFG/share/Git_Server/myrepo/
# git log
# 需要在路径前添加file:///
# git remote add shared file:///n:Git_Server/remote
# n:
# 此电脑->映射网络驱动器
# 此处映射到N盘,也可以映射到别的盘
cd /d/Git_server/myrepo
# cd /n/myrepo
git remote add shared //DESKTOP-ABCDEFG/share/Git_Server/myrepo/
# git remote -h
# git remote -v
git pull shared master
# 头一次会出现 fatal: couldn't find remote ref master
git push shared master
# git clone //DESKTOP-ABCDEDG/Git_Server/myrepo.git
# cd /d/Git_Server/remote
# git init --bare
# step2: 打开windows共享
# step3: 网络->映射网络驱动器
# 驱动器:N
# 文件夹\\d\Git_Server\remote

启用网络发现

git仓库 局域网 git局域网同步_git仓库 局域网_03


打开Git_Server文件 的属性,共享git仓库 局域网 git局域网同步_Windows_04,共享,添加everyone

git仓库 局域网 git局域网同步_Windows_05

Client端同步

在电脑Client端同步,用管理员模式打开Git BASH
电脑Client端

cd //192.168.0.1/share/Git_Server/myrepo
git init --bare
# Reinitialized existing Git repository in //192.168.0.1/share/Git_Server/myrepo/
cd /d/Git_Client/myrepo
git init
git remote add shared //192.168.0.1/share/Git_Server/myrepo
git remote -v
git pull shared master

以上是头一次使用
以下交换电脑A和电脑B的作用,将B的改动同步到A上

第二次使用Server端

# step 1: 配置name, email
git config -l
# step 2:
git add .
git commit -m "second submit"
git pull shared master
git push shared master

第二次使用Client端

git remote -v
git add .
git commit -m "if any update"
git push shared master
git pull shared master

Ubuntu访问Windows下的repository

  • install samba
    sudo apt-get install samba
  • make directory
    sudo mkdir /mnt/windows_share
  • mount windows share directory
    - sudo mount -t cifs -o username="miao",password="123456",uid=$(id -u),gid=$(id -g) //WINDOWS_IP_ADDRESS/share /mnt/windows_sharecd /mnt/windows_share/myrepogit init --bare 然后参考第二次使用Client端cd /myrepogit remote add shared /mnt/windows_shared/myrepogit pull shared master
  • unmount windows share directory
    sudo umount /mnt/windows_sharesudo rm -r /mnt/windows_share

使用OpenSSH
https://github.com/PowerShell/Win32-OpenSSH/wiki/Setting-up-a-Git-server-on-Windows-using-Git-for-Windows-and-Win32_OpenSSH https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH 非公开的Git
https://about.gitlab.com/
Bitbucker
https://bitbucket.org/product/
http://tfs.visualstudio.com/
Windows平台下搭建自己的Git服务器
安装OpenSSH服务器



https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%90%AD%E5%BB%BA-Git

图片来源:
https://www.liaoxuefeng.com/wiki/896043488029600/896202780297248
git中的每个repository即可以充电client,也可以充当server。可以将两台电脑上的内容互相同步,互为服务器和客户端。
git 局域网 两个客户端之间同步
https://www.zhihu.com/question/54672976
https://www.zhihu.com/question/54672976/answer/140594013
git init 与git init --bare

windows下实现Git在局域网使用

git–使用git在局域网机器上进行代码同步

使用git在两台机器间同步代码

【每日新知识】两台笔记本(均是window系统)使用ssh访问

GIT TortoiseGIT中怎么配置SSHKey

GIT TortoiseGIT中怎么配置SSHKey

4.2 服务器上的 Git - 在服务器上搭建 Git
https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E5%9C%A8%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E6%90%AD%E5%BB%BA-Git
Windows平台下Git服务器搭建