博客的搭建大致分为以下几个步骤
先安装包管理器brew,参考:
>
创建本地仓库并同步到远程
git是非常强大的版本管理工具。接下来的时间里,我就和大家絮叨絮叨git的入门:如何在本地创建一个git仓库,并把自己的本地代码同步到远程。此教程是在mac上 *** 作的,如果您的系统是Linux,那么 *** 作方法相同;如果您的系统是windows,那么,只需要把git的bash窗口调出来,以后的过程也都与Linux相同。
一、首先,您需要安装git,此步就忽略了,自行安装即可。
二、假设你目前还没有创建一个工作目录,那么,先创建一个目录吧,就叫StudyGit。
三、现在的StudyGit目录还只是一个本地目录,和git没有任何关联,那么,我们怎么样才能把这个目录和git关联起来呢?只需要进入StudyGit目录,运行如下命令:
yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git initInitialized empty Git repository in /Users/yanyaozhen/Coding/Practice/StudyGit/git/
提示已经说明我们初始化了一个空的本地git仓库。如果你查看StudyGit下的所有文件时,会发现一个git 的隐藏文件,这个文件非常重要,版本的控制就靠它了。
四、接下来我们来看一个基本可以说是用的最频繁的一个命令:
yanyaozhen@macbookpro:~/Coding/Practice/StudyGit$ git status五、现在让我们来创建一个文件吧。我们创建一个叫“atxt”的文本文件,并且内容如下
anyaozhen@macbookpro:~/Coding/Practice/StudyGit$ cat atxt一般情况下,我们只会生成一个SSH Key,名字叫id_rsa,然后提交到多个不同的网站(如:GitHub、DevCloud、Gitee、GitLab)。eg:尝试给Github配一个ssh。首先需要做的就是在命令行中输入以下指令
复制id_rsapub到对应的Git服务器即可。
但是也存在另一种需要,我们在同一个网站上,注册了两个或者多个用户名,通常网站不会允许我们为这两个用户名,配置同一个SSH Key,这时候就会有些麻烦。
a 一个gitee,用于A项目的一些开发活动;
b 一个github,用于B项目的一些开发活动;
c 一个gitlab,用于C项目的一些开发活动;
针对不同的账户,生成一个不同用途的SSH-Key,然后进行相关的配置即可。
下面以mac 设备为例:
1生成对应的SSH-Key:
生成一个gitee用的SSH-Key
生成一个github用的SSH-Key
生成一个gitlab用的SSH-Key
2在 ~/ssh 目录下新建一个config文件(终端:touch config),添加如下内容(其中Host和HostName填写git服务器的域名,IdentityFile指定私钥的路径)
3然后进入 ~/ssh ,拷贝不同的xxx_id_rsapub到不同的服务器进行配置,eg:拷贝 github_id_rsapub 内容,然后,进入Github,在Your profile里,点击左边SSH keys,再在右边点击Add SSH key按钮,如图:
其中,Title随便填,将id_rsapub里的内容复制到Key中,点击下方的Add key按钮。
4用ssh命令分别测试
这里以gitee为例,成功的话会返回下图内容:
SSH全称Secure Shell,是应用层上的一种安全协议,专为远程登录和其他网络服务提供安全性的一种协议
利用SSH协议可以有效防止远程管理过程中的信息泄露问题SSH会把所有传输内容加密,防止“中间人”攻击也能防止DNS欺骗和IP欺骗另外SSH会压缩传输数据,实现更快的传输速度
使用SSH主要就是通过两个ssh key文件:id_ras_xx(私钥)和id_ras_xxpub(公钥)实现的
ssh-keygen -t rsa -C "xxx@gmailcom" #添加ssh key
Enter之后会出现以下界面,让你输入文件要保存的路径和名字,直接Enter的话会默认生成id_rsapub,因为接下来我们要设置多个平台账号的ssh,所以这里给他重新命一个新的名字,比如 id_rsa_公司名_平台名 (id_rsa_alibaba_gitlab)
完成之后会让你输入密码,可以设置为空,直接 Enter 即可看到下图内容出现就表示ssh key已经生成 ~/ssh 目录就会新增两个 id_rsa_xxx 和 id_rsa_xxxpub 的文件
默认的话是会自动加入ssh agent中的,但是我们重命名了,需要手动加一下
ssh-add ~/ssh/id_ras_xx_xx
把id_rsa_xxpub里的内容复制拷贝到git服务器相应的位置即可
至此,如果是采用默认命名的话SSH就已经可用了但由于我们重命名了,还需要配置一下 config 才行在 ~/ssh 目录下新建 config 文件,配置一下内容即可
ps: HOST 和 User 中的数据取自项目地址中的 git clone git@githubcom:socketio/socketio-client-swiftgit中的git@githubcom
我们一般都会有很多不同的git账号,比如GitHub,Gitlab还有国内的gitee,大多数公司也还会使用自己内部的git服务器,那就会有多个账号,这种情况就需要我们在电脑上配置多个账号了也不复杂,只需重复上述的步骤,然后配置下config即可
config参考如下:
至此大功告成
网址:>git push时候遇到这个错误的解决方法如下:
在mac上面搭建的一个git server,在mac上面新建git仓库然后客户端获取没有问题。但是在客户端新建一个git仓库然后push到服务器的时候出现git does not appear to be a git repository错误
mac os 利用ssh 搭建git server服务器方法:
ubuntu下输入:>ssh-keygen -t rsa 不设置密码。默认在~/ssh下会有一个文件~/ssh/id_rsapub;
目前假设的是,服务器端从来没有配置成为过SSH服务器,所以自然也没有ssh目录以及authorized_keys文件。所以ubuntu下输入:>ssh git@服务器机器名称 mkdir ssh>scp ~/ssh/id_rsapub git@yourOtherMachineName:ssh/authorized_key;
现在重新切回服务器机器工作:>cd /etc,>chmod 666 sshd_config,>vim sshd_config。编辑如下:修改#PermitRootLogin yes为PermitRootLogin no。移除下面几条语句前面的# #RSAAuthentication ye #PubkeyAuthentication y#AuthorizedKeysFile ssh/authorized_key #PasswordAuthentication no #PermitEmptyPasswords no 最后修改#UserPAM yes为UsePAM no;
注销ubuntu用户,并重新登陆,运行ssh git@服务器机器名称,不需要密码即可登陆。>ssh-keygen -t rsa,不设置密码。默认在~/ssh下会有一个文件~/ssh/id_rsapub;
由于第一台实验机器的 *** 作,目前已不能直接采用用户名密码方式远程登陆。所以将id_rsapub拷贝到了服务器上,并将其内容加入到了服务器上的authorized_keys文件中,测试通过;
同osx的第二步,不同的是有时候windows系统对dns的解析有些问题,所以如果无法登陆,可以git@后面可以输入IP地址实验一下。
1、安装git,官网有安装教程;2、在新建项目到时候会有如下选项
如果创建项目到时候,没有选择创建repository,需要以下步骤进行设置
1)进入到该项目到目录下
$ cd Matchismo
2)找到xcuserstate,并设置到忽略文件夹中
$ find 找到隐藏文件xcuserstate,用来记录UI的情况,可以不使用git来提交
/DS_Store
/Matchismo
/Matchismo/DS_Store
/Matchismo/Baselproj
/Matchismo/Baselproj/Mainstoryboard
/Matchismo/Cardh
/Matchismo/Cardm
/Matchismo/CardGameAppDelegateh
/Matchismo/CardGameAppDelegatem
/Matchismo/CardGameViewControllerh
/Matchismo/CardGameViewControllerm
/Matchismo/Deckh
/Matchismo/Deckm
/Matchismo/enlproj
/Matchismo/enlproj/InfoPliststrings
/Matchismo/Imagesxcassets
/Matchismo/Imagesxcassets/AppIconappiconset
/Matchismo/Imagesxcassets/AppIconappiconset/Contentsjson
/Matchismo/Imagesxcassets/cardBackimageset
/Matchismo/Imagesxcassets/cardBackimageset/cardBack-1png
/Matchismo/Imagesxcassets/cardBackimageset/cardBackpng
/Matchismo/Imagesxcassets/cardBackimageset/Contentsjson
/Matchismo/Imagesxcassets/cardFrontimageset
/Matchismo/Imagesxcassets/cardFrontimageset/cardFront-1png
/Matchismo/Imagesxcassets/cardFrontimageset/cardFrontpng
/Matchismo/Imagesxcassets/cardFrontimageset/Contentsjson
/Matchismo/Imagesxcassets/Imageimageset
/Matchismo/Imagesxcassets/Imageimageset/Contentsjson
/Matchismo/Imagesxcassets/LaunchImagelaunchimage
/Matchismo/Imagesxcassets/LaunchImagelaunchimage/Contentsjson
/Matchismo/mainm
/Matchismo/Matchismo-Infoplist
/Matchismo/Matchismo-Prefixpch
/Matchismo/model
/Matchismo/model/CardMatchingGameh
/Matchismo/model/CardMatchingGamem
/Matchismo/PlayingCardh
/Matchismo/PlayingCardm
/Matchismo/PlayingCardDeckh
/Matchismo/PlayingCardDeckm
/Matchismoxcodeproj
/Matchismoxcodeproj/projectpbxproj
/Matchismoxcodeproj/projectxcworkspace
/Matchismoxcodeproj/projectxcworkspace/contentsxcworkspacedata
/Matchismoxcodeproj/projectxcworkspace/xcuserdata
/Matchismoxcodeproj/projectxcworkspace/xcuserdata/chrisxcuserdatad
/Matchismoxcodeproj/projectxcworkspace/xcuserdata/chrisxcuserdatad/UserInterfaceStatexcuserstate
/Matchismoxcodeproj/xcuserdata
/Matchismoxcodeproj/xcuserdata/chrisxcuserdatad
/Matchismoxcodeproj/xcuserdata/chrisxcuserdatad/xcdebugger
/Matchismoxcodeproj/xcuserdata/chrisxcuserdatad/xcdebugger/Breakpoints_v2xcbkptlist
/Matchismoxcodeproj/xcuserdata/chrisxcuserdatad/xcschemes
/Matchismoxcodeproj/xcuserdata/chrisxcuserdatad/xcschemes/Matchismoxcscheme
/Matchismoxcodeproj/xcuserdata/chrisxcuserdatad/xcschemes/xcschememanagementplist
/MatchismoTests
/MatchismoTests/enlproj
/MatchismoTests/enlproj/InfoPliststrings
/MatchismoTests/MatchismoTests-Infoplist
/MatchismoTests/MatchismoTestsm
3)将文件导入到gitignore
bogon:Matchismo chris$ echo Matchismoxcodeproj/projectxcworkspace/xcuserdata/chrisxcuserdatad/UserInterfaceStatexcuserstate >gitignore
bogon:Matchismo chris$ cat gitignore
Matchismoxcodeproj/projectxcworkspace/xcuserdata/chrisxcuserdatad/UserInterfaceStatexcuserstate
4)在项目文件目录下 执行指令:git init
bogon:Matchismo chris$ git init
Initialized empty Git repository in /Users/chris/developer/Matchismo/git/
5)当前目录添加到git
bogon:Matchismo chris$ git add
bogon:Matchismo chris$ git commit -m "Now under sorce control” 第一次提交的注释
[master (root-commit) 3eb6864] Now under sorce control
37 files changed, 1643 insertions(+)
create mode 100644 gitignore
create mode 100644 Matchismoxcodeproj/projectpbxproj
create mode 100644 Matchismoxcodeproj/projectxcworkspace/contentsxcworkspacedata
create mode 100644 Matchismoxcodeproj/xcuserdata/chrisxcuserdatad/xcdebugger/Breakpoints_v2xcbkptlist
create mode 100644 Matchismoxcodeproj/xcuserdata/chrisxcuserdatad/xcschemes/Matchismoxcscheme
create mode 100644 Matchismoxcodeproj/xcuserdata/chrisxcuserdatad/xcschemes/xcschememanagementplist
create mode 100644 Matchismo/Baselproj/Mainstoryboard
create mode 100644 Matchismo/Cardh
create mode 100644 Matchismo/Cardm
create mode 100644 Matchismo/CardGameAppDelegateh
create mode 100644 Matchismo/CardGameAppDelegatem
create mode 100644 Matchismo/CardGameViewControllerh
create mode 100644 Matchismo/CardGameViewControllerm
create mode 100644 Matchismo/Deckh
create mode 100644 Matchismo/Deckm
create mode 100644 Matchismo/Imagesxcassets/AppIconappiconset/Contentsjson
create mode 100644 Matchismo/Imagesxcassets/Imageimageset/Contentsjson
create mode 100644 Matchismo/Imagesxcassets/LaunchImagelaunchimage/Contentsjson
create mode 100644 Matchismo/Imagesxcassets/cardBackimageset/Contentsjson
create mode 100644 Matchismo/Imagesxcassets/cardBackimageset/cardBack-1png
create mode 100644 Matchismo/Imagesxcassets/cardBackimageset/cardBackpng
create mode 100644 Matchismo/Imagesxcassets/cardFrontimageset/Contentsjson
create mode 100644 Matchismo/Imagesxcassets/cardFrontimageset/cardFront-1png
create mode 100644 Matchismo/Imagesxcassets/cardFrontimageset/cardFrontpng
create mode 100644 Matchismo/Matchismo-Infoplist
create mode 100644 Matchismo/Matchismo-Prefixpch
create mode 100644 Matchismo/PlayingCardh
create mode 100644 Matchismo/PlayingCardm
create mode 100644 Matchismo/PlayingCardDeckh
create mode 100644 Matchismo/PlayingCardDeckm
create mode 100644 Matchismo/enlproj/InfoPliststrings
create mode 100644 Matchismo/mainm
create mode 100644 Matchismo/model/CardMatchingGameh
create mode 100644 Matchismo/model/CardMatchingGamem
create mode 100644 MatchismoTests/MatchismoTests-Infoplist
create mode 100644 MatchismoTests/MatchismoTestsm
create mode 100644 MatchismoTests/enlproj/InfoPliststrings
bogon:Matchismo chris$我们在windows上使用git的时候,有时候为了便利,直接采用git+tortoisegit的方式。这种方式可以带来很多的方便,不过在mac上,并没有tortoisegit的mac版本,不过有source
tree和gitX等工具。不过,今天主要不是讲这些客户端工具的使用,而是讲通过终端命令安装git的步骤及注意事项。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)