终于搞定,mac自己作为git服务器,mac也是客户端,如何免登

升级了mac系统打10.14后,公钥认证又不生效了,修改/etc/ssh/sshd_config文件如下,即可

# $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $

# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information. # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin # The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented. Uncommented options override the
# default value. Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress :: HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key # Ciphers and keying
#RekeyLimit default none # Logging
#SyslogFacility AUTH
#LogLevel INFO # Authentication: LoginGraceTime 2m
PermitRootLogin yes
StrictModes no
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10
RSAAuthentication yes
PubkeyAuthentication yes # The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys AuthorizedPrincipalsFile none AuthorizedKeysCommand none
AuthorizedKeysCommandUser nobody # For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes # To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no # Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes # Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no # GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes # Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes #AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
#PrintMotd yes
#PrintLastLog yes
#TCPKeepAlive yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none # pass locale information
AcceptEnv LANG LC_* # no default banner path
#Banner none # override default of no subsystems
Subsystem sftp /usr/libexec/sftp-server # Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server

测试登陆方式

ssh -v root@192.168.1.111

======

2019年12月24日更新:

git要免登的话还得做如下处理:

Mac里实际是

/Users/git/.ssh/authorized_keys

所以必须把id_rsa.pub黏贴到/Users/git/.ssh/authorized_keys里才能免登!!!!

======

从另外一个linux服务器的上传公钥得到提示

ssh-copy-id -i ~/.ssh/id_rsa.pub git@192.168.1.111

公钥是传到了mac的

/Users/git/.ssh/authorized_keys

所以其他的各个客户端的包括(mac自己)的pub公钥,都要复制到这个文件里,就可以免密码登陆了

注意mac里的sourcetree是用的非root账号,所以得在 非root账号下生成一个公钥,然后黏贴到服务器的authorized_keys文件里,这样sourcetree才能免密登陆

==========================================

(原文)http://blog.51cto.com/xinsir/2060332
初识Git

Git是什么?

  Git是目前世界上最先进的分布式版本控制系统。

SVN与Git的最主要的区别?

  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
  Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

基本概念

工作区:就是你在电脑里能看到的目录。
暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。工作区的文件先被增加到这个区域里,再从这个区域提交到版本库。
版本库:工作区有一个隐藏目录.git,这个不是工作区,而是Git的版本库。

在linux上搭建git服务器

linux系统环境:

[root@localhost ~]# cat /etc/issue
CentOS release 6.9 (Final)
Kernel \r on an \m

linux上作为我的git服务器

安装git

我这里使用的yum安装
[root@localhost ~]# yum install git
也可以使用源码安装,需要安装很多依赖包

yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel

下载地址 https://github.com/git/git/releases

    $ tar -zxf git-2.0.0.tar.gz
$ cd git-2.0.0
$ make configure
$ ./configure --prefix=/usr
$ make all doc info
$ sudo make install install-doc install-html install-info

获取git版本,安装成功

[root@localhost ~]# git version  #git版本
git version 1.7.1

git安装好后,创建 git 用户,用来管理 Git 服务,并为 git 用户设置密码

[root@localhost ~]# useradd git
[root@localhost ~]# passwd git

禁止 git 用户 ssh 登录服务器,修改/etc/passwd文件

比如原先是

git:x:1002:1002::/home/git:/usr/bin/git

需要改成
git:x:1002:1002::/home/git:/usr/bin/git-shell

创建版本库

在Disk文件夹下新建了一个文件夹名为repository
[root@localhost Disk]# mkdir repository
将repository初始化为git仓库
[root@localhost repository]# git init
该命令将创建一个名为 .git 的子目录,是隐藏的,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。

[root@localhost repository]# ll -a
drwxr-xr-x. 8 root root 4096 1月 8 17:35 .git

我从网上查到,如果初始化远程仓库的话,要使用这个命令:git init --bare repository.git
这样初始化的仓库并没有.git目录,只有.git目录下的文件。
不使用--bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本历史记录文件就存放在.git目录下;而使用--bare选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面
用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作。但别的用户在将更新push上来的时候容易出现冲突。
解决办法就是使用”git init --bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”),这个就是最好把远端仓库初始化成bare仓库的原因。

说白了,就是会创建一个裸仓库,裸仓库没有工作区,服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。
然后,把仓库所属用户改为git:
[root@localhost Disk]# chown -R git:git repository.git

在windows上安装git作为客户端

安装git

下载地址:http://gitforwindows.org/
直接安装即可,安装后在开始菜单里会有git bash、git GUI和git CMD

设置用户名、邮箱

因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
每一个 Git 的提交都会使用这些信息,并且它会写入到你的每一次提交中,不可更改。如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。
打开git bash

如果想要检查你的配置,可以使用 git config --list 命令来列出所有 Git 当时能找到的配置。

[root@localhost ~]# git config --list
user.name=xxx
user.email=xxx@qq.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
......

将linux服务端和windows客户端关联起来

客户端生成ssh私钥和公钥

想要他们连接的话要创建证书登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。 
打开windows的git bash,输入ssh-keygen -t rsa -C “邮箱”,生成ssh私钥和公钥

此时 C:\Users\用户名.ssh 下会多出两个文件 id_rsa 和 id_rsa.pub
id_rsa 是私钥
id_rsa.pub 是公钥

服务器端 Git 打开 RSA 认证

进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

保存并重启 sshd 服务:
[root@localhost ssh]# /etc/rc.d/init.d/sshd restart

centos7用systemctl restart sshd.service

将客户端公钥加到服务器

由 AuthorizedKeysFile 得知公钥的存放路径是 .ssh/authorized_keys,实际上是 $Home/.ssh/authorized_keys,由于管理 Git 服务的用户是 git,所以实际存放公钥的路径是 /home/git/.ssh/authorized_keys
在 /home/git/ 下创建目录 .ssh

[root@localhost git]# pwd
/home/git
[root@localhost git]# mkdir .ssh
[root@localhost git]# ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla .ssh

然后把 .ssh 文件夹的 owner 修改为 git,为.ssh和authorized_keys修改权限

[root@localhost git]# chown -R git:git .ssh
[root@localhost git]# chmod 700 .ssh
[root@localhost git]# touch .ssh/authorized_keys
[root@localhost git]#chmod 600 .ssh/authorized_keys

将客户端公钥id_rsa.pub文件的内容写到服务器端 /home/git/.ssh/authorized_keys 文件里

在客户端clone远程仓库

将服务器上的/opt/repository/gittest.git库克隆到本地 git clone [URL]git是用户名@服务器地址:仓库路径

可以看到本地上的服务器仓库了

在客户端远程仓库并提交代码

你已经在本地创建了一个Git仓库后,又想在服务器创建一个Git仓库,并且让这两个仓库进行远程同步
先在linux本地init一个仓库,在里面随意编辑一个文件,在本地提交,然后连接远程仓库,将文件push到服务器上,由于远程仓库是没有工作目录的,所以看不到你提交的文件,但是在服务器上git log一下,可以看到你提交的历史记录

远程库的名字就是origin,这是Git默认的叫法,也可以改成别的。
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令,git push origin master就行
要查看远程库的信息 使用 git remote
它会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin - 这是 Git 给你克隆的仓库服务器的默认名字
要查看远程库的详细信息 使用 git remote –v
会显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL,如果你的远程仓库不止一个,该命令会将它们全部列出

tortoiseGit的安装使用

安装

下载安装包,选择版本,地址:https://download.tortoisegit.org/tgit/
进入具体版本页面后,根据Windows操作系统版本选择相应的程序安装包和中文语言包.
https://download.tortoisegit.org/tgit/2.5.0.0/ 这是2.5.0.0版本的,直接安装即可

设置

在桌面右键选择tortoiseGit,选择设置,设置用户名和邮箱,跟在git bash是一样的,此时设置的是全局的

进到本地仓库目录中可以针对项目设置局部配置

克隆仓库

ssh key的步骤前面已经说完了,然后就可以克隆仓库进行使用了
选择你想要克隆仓库的文件夹,右键选择Git克隆,等同于 git clone [url]
URL是你要克隆的服务器版本库路径,目录是你要克隆到你本地的路径

填写服务器的url,确定,在克隆过程中会要求输入git用户的密码,然后在本地生成了仓库gittest,在gittest下面有.git目录,就是本地的版本库目录了,如果上一步选择了克隆成纯版本库,就不会有.git目录了,在本地一般不这样做

增加文件到暂存区

编辑一个文件保存,在空白处右键选择TortoiseGit,选择添加,加到暂存区,也就是git add,也可以在下一步里面直接提交

本地提交文件

右键选择Git提交,填写日志信息,不然不能提交然后点提交,这一步是将文件提交到你本地的仓库,git中不能提交一个空文件夹,里面一定要有文件才行
第一行默认提交到master分支,也可以选择新建分支,提交到新分支上

没有添加的文件也可以直接提交到版本库,也可以选择不提交未添加的文件

推送到远程仓库

将文件推送到远程仓库,右键选择tortoiseGit,选择推送,将文件推送到服务器仓库上
可以选择推送哪个分支上的信息,也可以选择推送到哪个远程分支上
目标:选择推送到哪个远程端上,选择管理,可以增加新的远程端,也可以直接写别的URL

确定推送

在服务器仓库下执行git log可以看到你推送的文件,因为服务器上是裸仓库,所以没有工作目录,看不到推送的文件

拉取文件和获取文件

拉取和获取的区别
拉取:git pull 在将远程仓库最新版本拉到本地的同时,将其合并到本地的当前 HEAD 中。
一般选择非fast forward,会多生成一个commit 记录,并强制保留分支的开发记录,不会丢失分支信息,这对于以后代码进行分析特别有用。

获取:git fetch 将远程仓库最新版本拉到本地,不会自动合并 ,绝不会更改任何本地分支
实际使用中 使用git fetch 更安全 在merge之前可以看清楚 更新情况 再决定是否合并

创建分支,切换分支

右键TortoiseGit,选择创建分支,填入分支名称,选择在哪个分支上新建分支,如果勾选切换新分支,分支创建后就直接在新分支上工作了,否则在TortoiseGit中选择切换分支
在分支上修改后提交到分支

合并

切换回master分支,TortoiseGit选择合并,选择非快进式合并,合并后master分支上有了其他分支上提交的信息

解决冲突

当主干与分支修改了同一个文件,合并时会产生冲突

打开文件与在命令行中一样,用<<<<<<<,=======,>>>>>>>标记出不同分支的内容

右键TortoiseGit中选择解决冲突

双击该文件进行修改,左边窗口是分支上的内容,右边窗口是master上的内容,你要在下面的窗口上解决冲突,修改正确的文件内容,然后保存,然后将解决后的文件进行提交

显示日志

红色代表当前分支,绿色代表本地分支,浅×××代表远端分支,×××代表标签
可以看到各版本提交的信息,及分支合并的信息,还有文件的操作状态

颜色可以在设置中更改

可以在每一条信息上右键选择与上一版本比较差异

以上就是TortoiseGit的基本操作了
下面是一些命令行操作

svn迁移到git服务器

根据需要,后期将会将svn上的数据迁移到git上

将svn库克隆到本地

使用TortoiseGit克隆svn库

URL是svn的地址,是你要克隆的文件夹
因为我的svn库不是标准的trunk、branch、tags结构,所以下面的不勾选,如果是标准的svn结构,请勾选
克隆需要一段时间,根据svn库的大小而定

在git服务器上创建新的裸仓库

使用git init --bare svnrepo.git命令

将本地仓库推送到git服务器

先建立远端仓库,在本地仓库内右键选择TortoiseGit,设置,然后选择远端,在右侧URL中填写git服务器仓库地址,就是刚刚在git服务器上新建的裸仓库,origin是默认的远端名字,然后点击确定

远端建立好后,就可以将本地克隆到的仓库推送到服务器上了
在本地仓库做一些修改,记住要先在本地进行提交,然后再推送到服务器上
TortoiseGit—>推送 就可以了,由于服务器上是裸仓库,所以没有工作区,看不到文件,git log一下就可以看到你刚才修改文件的提交记录了

基础命令

我是在linux上操作的,算是本地仓库吧,不涉及远程库;在linux上操作与在windows上相同

把文件添加到版本库中

编辑一个readme.txt文件,将文件加入版本库中
[root@localhost repository]# git add readme.txt #将工作区中的文件添加到暂存区了

将文件提交到版本库

[root@localhost repository]# git commit -m “提交readme”
-m 是提交信息,便于查看提交了什么东西,这一步是将暂存区中的文件提交到仓库了

查看是否还有文件未提交

[root@localhost repository]# git status
#On branch master
nothing to commit (working directory clean)

这样说明没有任何文件未提交,工作区是干净的

修改readme文件后保存,不进行任何操作,再查看状态

[root@localhost repository]# git status
#On branch master
#Changed but not updated:
#(use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

上面的命令告诉我们 readme.txt文件已被修改,但是并没有提交

查看readme.txt文件修改了什么内容

[root@localhost repository]# git diff
diff --git a/readme.txt b/readme.txt
index 92e045e..d94ee74 100644
--- a/readme.txt
+++ b/readme.txt
@@ -5,4 +5,3 @@
666666
777777
999999
-000

可以看到,少了一行000
知道了对readme.txt文件做了什么修改后,我们可以放心的提交到仓库了,提交修改和提交文件是一样的2步(第一步是git add 第二步是:git commit)。

[root@localhost repository]# git add readme.txt
[root@localhost repository]# git commit -m "readme删除000"

查看历史记录

[root@localhost repository]# git log
commit ffc46d25feacd0ae1926ace37efecd116402503e #版本号
Author: bai <xxx@qq.com>
Date: Tue Jan 9 16:49:18 2018 +0800 readme删除000 #最近一次提交内容,也就是commit -m 写的内容 commit 1fac1a93037444bfbd59e51b57c511aaa0a9578f
Author: bai <xxx@qq.com>
Date: Mon Jan 8 11:26:26 2018 +0800 readme增加222222 commit 876477f1b209ba61de4248ff26c2c1a098520295
Author: bai <xxx@qq.com>
Date: Mon Jan 8 11:20:45 2018 +0800 提交readme.txt

如果嫌上面显示的信息太多的话,我们可以使用命令 git log –pretty=oneline

[root@localhost repository]# git log --pretty=oneline
ffc46d25feacd0ae1926ace37efecd116402503e readme删除000
1fac1a93037444bfbd59e51b57c511aaa0a9578f readme增加222222
876477f1b209ba61de4248ff26c2c1a098520295 提交readme.txt

版本回退

[root@localhost repository]# git reset --hard HEAD^ #回退到上一版本

[root@localhost repository]# git log
commit 1fac1a93037444bfbd59e51b57c511aaa0a9578f
Author: bai <xxx@qq.com>
Date: Mon Jan 8 11:26:26 2018 +0800 readme增加222222 commit 876477f1b209ba61de4248ff26c2c1a098520295
Author: bai <xxx@qq.com>
Date: Mon Jan 8 11:20:45 2018 +0800 提交readme.txt

可以看到删除000的操作没有了
如果想要回退到上上个版本就把HEAD^ 改成 HEAD^^,以此类推
如果想回到100个版本之前的话,就git reset --hard HEAD~100

回退到指定版本

[root@localhost repository]# git reset HEAD 版本号

获得版本号

[root@localhost repository]# git reflog
19ecf86 HEAD@{0}: HEAD^: updating HEAD
ffc46d2 HEAD@{1}: commit: readme删除000

ffc46d2就是版本号

撤销修改

1.如果已经提交了的话,就直接回退到上一版本
2.如果没有添加到暂存区的话,使用git checkout -- 文件名 撤销工作区的所有修改
[root@localhost repository]# git checkout -- readme.txt
3.如果已经添加到暂存区的话,想丢弃修改
[root@localhost repository]# git reset HEAD readme.txt
然后再重复第二步

删除文件

[root@localhost repository]# git rm readme.txt
[root@localhost repository]# git commit -m “删除readme”

创建分支

[root@localhost repository]# git checkout –b fenzhi
这个命令相当于两条命令
git branch fenzhi 创建分支
git checkout fenzhi 切换到该分支

我们在分支上修改了文件内容提交后,在主分支上是看不到刚才修改的内容的

查看当前分支

[root@localhost repository]# git branch
* fenzhi
master

带星号的则代表当前在该分支上

合并分支

[root@localhost repository]# git checkout master   #在master分支上进行合并
[root@localhost repository]# git merge --no-ff fenzhi

在分支上修改内容后,与主分支合并,合并后就统一了文件内容

删除分支

[root@localhost repository]# git branch -d fenzhi

解决冲突

当你在主分支上和其他分支上修改了同一个文件并且都提交了,当在主分支上合并的时候就会产生冲突

查看文件内容是这样的

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,其中<<< HEAD是指主分支修改的内容,>>>>fenzhi 是指fenzhi上修改的内容
我们可以手动修改文件,解决冲突,然后在提交到版本库

用git log查看分支历史

git log --graph --pretty=oneline --abbrev-commit

隐藏工作区

在开发中,会经常碰到bug问题,那么有了bug就需要修复,每个bug都可以通过一个临时分支来修复,修复完成后,合并分支,然后将临时的分支删除掉。比如我在开发中接到一个404 bug时候,我们可以创建一个404分支来修复它,但是,当前的dev分支上的工作还没有提交。
工作进行到一半时候,我们还无法提交,比如我这个分支bug要2天完成,但是404 bug需要5个小时内完成。怎么办呢?还好,Git还提供了一个stash功能,可以把当前工作现场 ”隐藏起来”,等以后恢复现场后继续工作。
在你需要隐藏的dev分支下执行git stash,这时候虽然dev分支上的内容还没有提交,但是git status看一下工作区是干净的,也就是dev的工作现场被隐藏了
现在创建404分支来修复bug了。首先我们要确定在哪个分支上修复bug,比如我现在是在主分支master上来修复的,现在我要在master分支上创建一个临时分支修复完成后,切换到master分支上,并完成合并,最后删除404分支。
然后我们回到dev分支上干活,工作区是干净的,那么我们工作现场去哪里呢?我们可以使用命令 git stash list来查看下
工作区是干净的,那么我们工作现场去哪里呢?我们可以使用命令 git stash list来查看下。Git把stash内容存在某个地方了,但是需要恢复一下,可以使用如下2个方法:
git stash apply恢复,恢复后,stash内容并不删除,你需要使用命令git stash drop来删除。
另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。

(转)初学Git及简单搭建git服务器和客户端的更多相关文章

  1. centos7搭建svn服务器及客户端设置

    centos7搭建svn服务器及客户端设置 centos7貌似预装了svn服务(有待确认),因此我们直接启动该服务即可 一.svn服务端配置(服务器IP假设为192.168.100.1) 步骤1:创建 ...

  2. linux 简单搭建git服务器

    如果使用git的人数较少,可以使用下面的步骤快速部署一个git服务器环境. 1. 生成 SSH 公钥 每个需要使用git服务器的工程师,自己需要生成一个ssh公钥进入自己的~/.ssh目录,看有没有用 ...

  3. Ubuntu简单搭建git私有服务

    gitserver搭建过程 搭建gitserver过程记录 例如以下: 环境: serverUbuntu虚拟机(Boss),能通过网络訪问到(server地址:192.168.9.103). clie ...

  4. (十九)git版本管理软件——搭建git服务器

    创建管理员git 为管理员用户添加sudo权限 生成管理员秘钥 设置管理员git提交账号和邮箱 下载安装gitolite 启动gitolite 添加项目版本库 添加项目成员 项目成员下载项目 gito ...

  5. 创业公司十分钟简单搭建GIT私有库

    欢迎关注老码农的微信公共账号,与CSDN博客同步 一.背景 小公司.协同开发的人不多,建gitlab比較麻烦,仅仅须要在Server端建立一个简单的git共享库就OK. 二.建立仓库 Server端: ...

  6. 简单搭建http服务器-HttpListener使用

    使用HTTPListener可以简单搭建一个Http服务器,对于本地使用很是方面,想起之前使用了WebSocket来与本地网页通讯的例子,也是可以改为使用HTTPListener来做的.看下HTTPL ...

  7. GIT Bash 简单讲解-git如何推/拉代码

    GIT Bash 简单讲解 一.            注册/登录GIT账号 注册(或者登录) GitHub地址:https://github.com/ 注册不做详细的讲解,按照注册指示进行注册就可以 ...

  8. CentOS 6.9/Ubuntu 16.04搭建OpenVPN服务器以及客户端的使用

    说明: 1.发现一个很奇怪的现象,CentOS和Ubuntu有着对用户不同的管理理念,比如CentOS中安装一切软件都是以root优先(su -),而Ubuntu则以当前用户优先,安装软件以sudo开 ...

  9. windows上搭建NFS服务器及客户端 挂载

    在Windows相关系统上搭建NFS服务及客户端挂载  有两种方式: 第一种: (Windows Server2008R2等类似企业版这样的版本的Server服务上有自带的NFS服务进行搭建) (特别 ...

随机推荐

  1. Object.assign的用法

    工作中使用的Object.assign 类的赋值 var initData = { a:'', b:'' } var oldData = { a:'ww', b:'ee' } var newData ...

  2. 总结vue中父向子,子向父以及兄弟之间通信的几种方式

    子向父方式1:通过props,如例子中子组件test1.vue向父组件App.vue传值 App.vue代码 <template> <div id="app"&g ...

  3. ie9上传后下载json

    1.保持后台控制器返回的数据为字符串格式 2.js:dataType类型保持为html格式 dataType: 'html',//默认就是html类型,不写对火狐有影响 3.将上传后后台返回的字符串转 ...

  4. while循环--登录

    user = "fallen577" password = " count = 0 while count < 3: username = input(" ...

  5. L342 Air Pollution Is Doing More Than Just Slowly Killing Us

    Air Pollution Is Doing More Than Just Slowly Killing Us In the future, the authorities might need to ...

  6. session_id() , session_start(), $_SESSION["userId"], header("Location:homeLogin.php"); exit 如果没有登录, 就回登录页

    if(!session_id()) session_start(); header("Content-type:text/html;charset=utf-8"); if (emp ...

  7. zt secureCRT serialNo

    Name: ygeR Company: TEAM ZWT SerialNumber: 03-77-119256 License Key: ABH2MJ 9YVAC5 Z17QF7 4ZAS7Z ABG ...

  8. vue项目中如何使用less

    首先你的vue-cli下载完成 第一步   安装less-loader  依赖 npm  install  less less-loader  --save-dev 直接自动就配置上了,不用手动配置 ...

  9. Linux 驱动——Button驱动4(fasync)异步通知

    button_drv.c驱动文件: #include <linux/module.h>#include <linux/kernel.h>#include <linux/f ...

  10. matlab函数每天进步一点点

    1. 读mp4视频 : xyloObj = VideoReader('su35.mp4'); 链接 2. 查看有几个相同的函数和当前使用的函数是哪个路径下的: which -all xxx;    w ...