Ⅰ 局域网内创建git服务器的简单方法
当资源有限,但是项目同时需要几个人协同开发,我们就需要配置一个简单的局域网内的git服务器,方便协同开发。
首先我们新建远端的git目录,目录名和本地仓库名一致,并且在目录下运行:
git init --bare
一个空的git仓库就建立好了。然后我们需要把本地的仓库和远端的关联起来。具体做法是,在本地git仓库的目录下执行:
git remote add origin ssh://用户名@ip/仓库路径
比如:git remote add origin ssh://android@192.168.31.72/home/android/projects/gitserver/demoproject/。完成后,本地的提交,就可以push到远端啦。比如:
git push origin master
就可以把本地的master推送到远端。协同开发的同事可以通过如下命令获取远端的仓库
git clone ssh://[email protected]/home/android/projects/gitserver/demoproject/
是不是很简单呢
ps:实际使用过程中发现了一个问题,即本机的ip地址不是静态的。如何解决这个问题呢?可以在每次ip改变以后,重置仓库的origin url:
git remote set-url origin {url}
Ⅱ 如何 连接 linux git服务器
1、前期准备 服务器上配置好的git git客户端 1.1 在服务器上安装git (本机所使用的linux是ubuntu) 在服务器输入命令:sudo apt-get install git即可 然后创建名字为git的用户组和用户 1.2 下载客户端 在浏览器地址栏输入:https://git-for-windows.github.io/ 回车后 点击Download进行下载 2、具体操作 2.1 在合适的位置创建一个目录充当git远程仓库(本机位置为/usr/testgit),然后使用init命令初始化仓库 在命令终端输入: sudo git init –bare 2.2 将git init生成的目录所属者改为git 输入命令:sudo chown -R git:git * 至此服务器端的操作完成。 在客户端合适位置使用git 客户端从服务器资源 2.3 首先打开git客户端 点击Git Bash Here 后出现 在git客户端命名终端输入: git clone git@xxxxxx:/rrrrr 其中xxxxxx是远程服务器的地址 rrrrr为git仓库所在位置 如果配置正确你选中的目录下会出现名字为testgit的文件夹 testgit文件夹下随意创建若干个文件 2.3 在git客户端上使用命令 git add 111.txt 222.txt 333.txt 或者使用git add .(将本文件夹下所有文件都add) 该命令的作用是告诉git把文件添加到git仓库 2.4 然后使用git commit命令将文件提交到git仓库 -m 后面的内容为本次提交文件的一些注释内容 此时文件还没有从本地仓库上传到远程服务器仓库 2.5 使用push命令将本地仓库中的内容提交到远程仓库 在git客户端命令终端输入:git push origin master 至此本地仓库中的文件上传已经上传到远程服务器仓库。 在其他文件夹下再次使用 git clone 命令 从远程服务器同步仓库
Ⅲ 配置git连接远程码云仓库,并且码云仓库代码部署到服务器
``ssh-keygen -t rsa -C “您的邮箱地址”``
Your identification has been saved in /Users/you/.ssh/id_rsa.
# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
cd ~/.ssh
查看公钥
cat id_rsa.pub
复制粘贴到码云上
到本地项目文件夹下,右键点击空白处,选择Git Bash Here,进入git窗口
一波操作后的页面
whereis git
yum install -y git
git version
eg: cd /home/www/test
git init
git config --global user.name "您的用户名称"
git config --global user.email "您的邮箱地址"
git remote add origin 自己的仓库地址
eg:git remote add origin https://gitee.com/***/**.git
ssh -v [email protected]
然后输入 yes
我拉取的是master分支
git pull origin master
如果拉文件的时候报这个错误,那么我们需要生成ssh公钥
ssh-keygen -t rsa -C"[email protected]"
查看当前公钥,并且将公钥添加到码云后台的ssh公钥中
git branch --set-upstream-to=origin/码云本地分支 服务器本地分支
eg:git branch --set-upstream-to=origin/master master
git config --global credential.helper store
到此、配置完成
Ⅳ 如何通过git把本地的代码上传到服务器
1、首先需要安装Git,如果已经安装,请跳过。由于Git是Linux开发的,所以大部分使用在Linux系统上,但肯定会有windows版的,我本身使用的是win10,下载安装即可:https://git-for-windows.github.io/
2、安装好git服务器后。首先找到你项目的文件夹,比如项目名称为myproject,进入到这个文件夹,右键打开模拟linux风格的命令窗口
接下来依次执行命令:
git init // 初始化版本库git add . // 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 git commit -m "first commit" // 把添加的文件提交到版本库,并填写提交备注12345
到目前为止,我们完成了代码库的初始化,但代码是在本地,还没有提交到远程服务器,所以关键的来了,要提交到就远程代码服务器,进行以下两步:
git remote add origin 你的远程库地址 // 把本地库与远程库关联git push -u origin master // 第一次推送时git push origin master // 第一次推送后,直接使用该命令即可推送修改12345
把本地库的内容推送到远程。使用 git push命令,实际上是把当前分支master推送到远程。执行此命令后会要求输入用户名、密码,验证通过后即开始上传。
说明:用户名密码需要通过命令 ssh-keygen -t rsa -C “[email protected]”进行创建,并且要把得到的秘钥(公钥)文件放到git服务器上,这样才有权限进行代码推送
到此就成功的把本地的代码放到了远程服务器上,这样就能让项目组成员进行写作开发了。
Ⅳ 如何搭建git本地服务器 windows
安装msysgit
安装步骤此处略去。
END
安装CopSSH
安装步骤此处略去。
END
修改配置
修改CopSSH配置文件C:\Program Files\ICW\etc\sshd_config,确保如下行为非注释行,且设置为“no”:
END
生成用户帐号
1
在服务器上生成Windows用户,取消用户下次登录时须更改密码,设置密码永不过期:
2
将该用户隶属于GitUser组(如尚未生成改组,则先生成改组):
END
激活用户
1
在Windows启动程序组中,运行如下程序(C:\Program Files\ICW\bin\ copsshcp.exe):
2
进入COPSSH Control Panel应用对话框,正常情况下服务应该为正在运行(图标为绿色,如为红色,则可尝试点选该按钮,启动该服务):
3
选择Users页面:
4
点选Add按钮,出现如下导航对话框:
5
选择Forward按钮,出现如下页面,选择欲激活的用户对应的域名及用户名:
6
选择Forward按钮,进入如下页面,选择Linux shell and Sftp,所有选项选中:
7
选择Forward按钮,进入确认页面,选择Apply:
8
回到如下页面,选择Apply后,关闭。
END
公钥文件上传
1
从用户处取得对应帐户的公钥文件authorized_keys,复制到C:\Program Files\ICW\home\ricky\.ssh目录下(\ricky\是对应的用户名);
2
Windows启动程序组中运行Start a Unix BASH Shell(或Windows运行中运行命令:"C:\Program Files\ICW\bin\bash.exe" --login -i):
3
运行如下unix命令行,如运行未出错,则完毕。
END
生成Git库容器目录
1
在服务器硬盘上生成一个目录,用来容纳Git库,比如生成E:\ GITTestRepo\目录;
2
鼠标右键点击该目录,选择共享和安全…;
3
在弹出的该目录属性对话框的安全页中加入用户对应的组GitUser;
4
确认该用户组权限设置了允许修改、读取和运行、列入文件夹目录、读取、写入,选择确定后完毕。
确认防火墙开放了22端口
确认服务器的防火墙没有禁止22端口的TCP/IP通信。
修改用户登录运行脚本
1
修改C:\Program Files\ICW\home\ricky\.bashrc文件(\ricky\是对应的用户名),在文件最后加入如下行:
Ⅵ TortoiseGit使用ssh密钥连接git服务器
使用ssh密钥连接git服务器相对于账号密码来说会安全一丢丢,密钥不丢问题不大。而且很git服务提供商如:github、gitee等都提供ssh密钥访问,可以自己设定密钥。这样就可以把不同平台设置成同一个密钥,然后就可以一个密钥访问所有的git服务器。
下面以github为例。
如果已有密钥跳过这一步。如果没有密钥,可以用ssh-keygen来生成
找到TortoiseGit安装目录的 bin/pageant.exe ,启动,并添加私钥匙文件
从github项目中,获取ssh地址
直接Clone这个地址就可以了直接clone了
Ⅶ 怎么在windows下架设Git服务器
1、打开控制面板->管理工具->服务项目,禁用Windows防火墙服务。
2、打开控制面板->管理工具,双击“路由和远程访问”。然后右键点击服务器图标,再点击“配置并启用路由和远程访问”。
3、在“路由和远程服务器安装向导”中,选择“自定义配置”。
4、勾选“VPN访问”和“NAT和基本防火墙”。
5、点击“完成”。系统提示“要开始服务吗?”,选择“是”。
6、接下来开始配置路由和远程访问,我们先点击本地服务旁边的+按钮,把左侧菜单展开,再点击IP路由选择旁边的+按钮。
7、下面配置静态IP地址。右键点击本地服务,点击属性,再点击IP选项卡。
8、点选“静态地址池”,点击“添加”。输入一个起始IP地址和结束IP地址范围,推荐输入192.168.1.100到192.168.1.254这个范围,因为192.168段属于本地保留IP段。最后点击“确定”。
9、右键点击“静态路由”,再点击“新建静态路由”。
10、目标和网络掩码都输入0,网关请和TCP/IP属性中的默认网关保持一致。
11、删除“DHCP中继代理程序”中的“内部”项目。
12、然后右键点击“DHCP中继代理程序”,再点击“新增接口”。
13、选择“本地连接”,再点击“确定”,然后在弹出的对话框中点击“确定”。
14、右键点击“NAT/基本防火墙”,再点击“新增接口”,然后选择“本地连接”,点击“确定”。
15、在弹出的对话框中先点选“公共接口连接到Internet”,再勾选“在此接口上启用NAT”,最后点击“确定”。
Ⅷ 如何连接git服务器 gitolite
相比gitosis,gitolite的功能更为强大,支持对权限的细分控制,学习一下在最新版 的ubuntu 14.04 LTS中搭建gitolite服务器是非常有必要的,嘿嘿,一会属于我们自己的GitHub就要出来了!
工具/原料
Ubuntu 14.04 LTS
gitolite
方法/步骤
首先这里我们安装openssh-server openssh-client,如果你用的是VPS之类的一般都默认安装好了,不过运行一个这个命令不会有错的,如果有安装就会提示已安装。
sudo apt-get -y install openssh-server openssh-client
安装git,在这个核心软件,不可或缺。
sudo apt-get -y install git
添加gitolite用户和同名用户组,加上--system参数,用户就不会在登陆界面显示。
sudo adser --system --shell /bin/sh --group --disabled-password --home /home/gitolite gitolite
生成ssh key,一路回车下来。
ssh-keygen -t rsa
将你当前用户的ssh pub key复制到/tmp下备用,由于我用的是桌面版在同一台机器上。
cp ~/.ssh/id_rsa.pub /tmp/ubuntugege.pub
如果你是ssh远程登陆到服务器上安装,就要把你本地的key复制到远程的机器上
scp ~/.ssh/id_rsa.pub gitolite.server:/tmp/ubuntugege.pub
安装gitolite,在ubuntu中已经集成了,不用自己去下载。
sudo apt-get -y install gitolite
切换到gitolite用户环境中,因为我要以gitolite用户身份去初始化安装。
sudo su - gitolite
执行初始化安装gitolite。
gl-setup /tmp/ubuntugege.pub
把管理库gitolite-admin克隆过来就可以开始gitolite用户及代码库的管理了,如果不能克隆,那么就说明初始化的ssh pub key错了,如图就是成功了。
git clone ssh://gitolite@localhost/gitolite-admin.git
我的服务器用的是小鸟云的,访问很流畅。
Ⅸ 怎样使用git将本地代码上传到服务器
注册账户以及创建仓库
要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。步骤如下:
打开https://github.com直接在首页上注册
2)上传到github
$ git push origin master
git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。
注:首次提交,先git pull下,修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件。
大功告成,现在你知道如何将本地的项目提交到github上了。
gitignore文件
.gitignore顾名思义就是告诉git需要忽略的文件,这是一个很重要并且很实用的文件。一般我们写完代码后会执行编译、调试等操作,这期间会产生很多中间文件和可执行文件,这些都不是代码文件,是不需要git来管理的。我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。这时我们就需要.gitignore了。
Git命令
查看、添加、提交、删除、找回,重置修改文件
git help <command> # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- <file> # 抛弃工作区修改git co . # 抛弃工作区修改git add <file> # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件提交暂存区git rm <file> # 从版本库中删除文件git rm <file> --cached # 从版本库中删除文件,但不删除文件git reset <file> # 从暂存区恢复到工作文件git reset -- . # 从暂存区恢复到工作文件git reset --hard # 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改git ci <file> git ci . git ci -a # 将git add, git rm和git ci等操作都合并在一起做git ci -am "some comments"git ci --amend # 修改最后一次提交记录git revert <$id> # 恢复某次提交的状态,恢复动作本身也创建次提交对象git revert HEAD # 恢复最后一次提交的状态
查看文件diff
git diff <file> # 比较当前文件和暂存区文件差异 git diffgit diff <id1><id2> # 比较两次提交之间的差异git diff <branch1>..<branch2> # 在两个分支之间比较git diff --staged # 比较暂存区和版本库差异git diff --cached # 比较暂存区和版本库差异git diff --stat # 仅仅比较统计信息
查看提交记录
git log git log <file> # 查看该文件每次提交记录git log -p <file> # 查看每次详细修改内容的diffgit log -p -2 # 查看最近两次详细修改内容的diffgit log --stat #查看提交统计信息
tig
Mac上可以使用tig代替diff和log,brew install tig
Git 本地分支管理
查看、切换、创建和删除分支
git br -r # 查看远程分支git br <new_branch> # 创建新的分支git br -v # 查看各个分支最后提交信息git br --merged # 查看已经被合并到当前分支的分支git br --no-merged # 查看尚未被合并到当前分支的分支git co <branch> # 切换到某个分支git co -b <new_branch> # 创建新的分支,并且切换过去git co -b <new_branch> <branch> # 基于branch创建新的new_branchgit co $id # 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除git co $id -b <new_branch> # 把某次历史提交记录checkout出来,创建成一个分支git br -d <branch> # 删除某个分支git br -D <branch> # 强制删除某个分支 (未被合并的分支被删除的时候需要强制)
分支合并和rebase
git merge <branch> # 将branch分支合并到当前分支git merge origin/master --no-ff # 不要Fast-Foward合并,这样可以生成merge提交git rebase master <branch> # 将master rebase到branch,相当于: git co <branch> && git rebase master && git co master && git merge <branch>
Git补丁管理(方便在多台机器上开发同步时用)
git diff > ../sync.patch # 生成补丁git apply ../sync.patch # 打补丁git apply --check ../sync.patch #测试补丁能否成功
Git暂存管理
git stash # 暂存git stash list # 列所有stashgit stash apply # 恢复暂存的内容git stash drop # 删除暂存区Git远程分支管理
git pull # 抓取远程仓库所有分支更新并合并到本地git pull --no-ff # 抓取远程仓库所有分支更新并合并到本地,不要快进合并git fetch origin # 抓取远程仓库更新git merge origin/master # 将远程主分支合并到本地当前分支git co --track origin/branch # 跟踪某个远程分支创建相应的本地分支git co -b <local_branch> origin/<remote_branch> # 基于远程分支创建本地分支,功能同上
git push # push所有分支
git push origin master # 将本地主分支推到远程主分支git push -u origin master # 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)git push origin <local_branch> # 创建远程分支, origin是远程仓库名git push origin <local_branch>:<remote_branch> # 创建远程分支git push origin :<remote_branch> #先删除本地分支(git br -d <branch>),然后再push删除远程分支
Git远程仓库管理
git remote -v # 查看远程服务器地址和仓库名称git remote show origin # 查看远程服务器仓库状态git remote add origin git@ github:robbin/robbin_site.git # 添加远程仓库地址git remote set-url origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址) git remote rm <repository> # 删除远程仓库
创建远程仓库
git clone --bare robbin_site robbin_site.git # 用带版本的项目创建纯版本仓库scp -r my_project.git git@ git.csdn.net:~ # 将纯仓库上传到服务器上mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库git remote add origin git@ github.com:robbin/robbin_site.git # 设置远程仓库地址git push -u origin master # 客户端首次提交git push -u origin develop # 首次将本地develop分支提交到远程develop分支,并且trackgit remote set-head origin master # 设置远程仓库的HEAD指向master分支
也可以命令设置跟踪远程库和本地库
git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop此文章属转载,原文地址:http://1ke.co/course/194另附: 解决 在使用git 对源代码进行push到gitHub时可能会出错,error: failed to push some refs to git。出现错误的主要原因是github中的README.md文件不在本地代码目录中可以通过如下命令进行github与本地代码合并: git pull --rebase origin master重新执行之前的git push 命令,成功!