标签:远程服务 shell gen 进入 root 应该 利用 pass 回溯
在平时的工作中,经常会遇到写文档的事情,而写文档基本都不会一蹴而就,总是会修修改改很多次,而版本控制能够记录每次修改的版本,能够进行回溯。有很多版本控制工具,但是作为一个程序员,肯定是首推 Git 不解释,由于我暂时还只是一个人自己鼓捣,所以不存在多人协作流程相关的东西,但是我有多台设备,我希望能够在多台设备上都能操作同样的文件,再结合对文件需要进行版本控制,所以下面配置 Git 版本控制环境分需求进行介绍,大家可以根据自己的需求进行配置,环境是在windows系统下。
基于需求 | 命令行 | 英文界面 | 中文界面 |
---|---|---|---|
单人本地 | Git | Git + TortoiseGit | Git + TortoiseGit + LanguagePack |
单人远程 | Git + ssh-keygen | Git + TortoiseGit + PuTTY | Git + TortoiseGit + PuTTY+ LanguagePack |
多人远程 | GitHub + Git + ssh-keygen | Git + TortoiseGit + PuTTY | GitHub no Chinese version, same as above |
Git GUI Here
个人觉得非常简陋,还不如命令行敲起来舒服,所以如果用界面的话,还是建议用 TortoiseGit 比较好。Git Bash Here
git config --global user.name "Chayeen"
,Chayeen
修改成你自己的名字,这里是在配置每次 Git 提交文件到版本库时的提交人信息,主要用于多人协作时可以看到到底是谁进行的此次提交,方便找人;git config --global user.email "chayeenhuang@126.com"
,同样,把chayeenhuang@126.com
修改成你自己的邮箱即可;Git Bash Here
cd ~/.ssh
:查看是否已经有 id_rsa 和 id_rsa.pub 两个文件,如果有,跳过下一步,没有就下一步;ssh-keygen.exe -t rsa -C "邮箱名"
回车,如ssh-keygen.exe -t rsa -C "chayeenhuang@126.com"
,回车之后要求输入公私钥存储的文件名,如果直接回车,默认文件名为 id_rsa,否则就是你输入的名字,建议直接回车(后续 GitHub 默认读取的就是 id_rsa 名字的私钥);然后会要求输入密码,这个密码其实是在对私钥加密,如果没有输密码,别人如果拿到你的私钥,他在使用的时候就可以直接使用,否则就需要输入密码才行。建议还是输一个简单的密码,只是输了之后,推送到远端 Git 服务器时,有时候就需要输入密码才能用,稍微让自己的操作又麻烦了点;TortoiseGit
按钮,点击;Settings
设置,弹出一个框,点击确定;General
,点击 Re-run First Start Wizard
;Chayeen
和 chayeenhuang@126.com
;第五页,把默认 OpenSSH 修改成 TortoiseGitPlink
;Generate PuTTY key pair
,弹出生成公私钥的界面,点击 Generate
,在 该界面框内 移动鼠标,直至进度条满生成公私钥,然后点击 Save public Key
和 Save private key
保存公私钥在某个位置(后面要用);这里可以输入公私钥密码 Key passphrase
,之后如果要使用这个公私钥之前就需要使用这个密码才能使用,也可以不输入,这样任何人只要拿到这对公私钥就可以使用,同 ssh-keygen 相似;pageant.exe
双击运行;Add Key
,找到上面 PuTTY 生成的私钥添加即可;至此,本地的配置工作告一段落,利用 Git 完成了基本软件环境,然后利用 TortoiseGit 安装了界面环境,利用 ssh-keygen 和 PuTTY 完成了生成公私钥的任务,下面的配置则是在服务器端的操作。
yum intall git
,依赖yum包管理工具就可以安装了;useradd git
回车;passwd git
,回车输入密码2次,linux不会显示密码,这是正常的,直接输就行了;vim /etc/passwd
,修改git用户权限,git:x:1000:1000::/home/git:/usr/bin/git-shell
,主要是把/home/git:
后面修改成/usr/bin/git-shell
即可;mkdir 文件夹
,在远端新建一个文件夹,作为远端仓库位置,假设就是/home/demo
,后续会用到;cd demo
,进入文件夹;git init
,回车在该文件夹内建立一个版本库;git config --bool core.bare true
,把该版本库修改成一个 bare 裸仓库,如果不是裸仓库的话,在本地提交到远端的时候就会出现 远端已经存在工作树,本地工作树提交冲突
的问题(深层次的原因不清楚,反正用这个命令就可以解决问题);cd ..
回到上层文件夹;chown -R git:git demo
修改该文件夹的用户权限,由于之前在服务器上搭建 git 的时候,新建了一个 git 用户并限制了它的 shell 登录(即不能使用 git 账号登录该服务器),所以 sudo 切换到 git 用户下建立仓库不可行,上述文件夹及操作都是在 root 用户下,需要修改成 git 用户,这样本地推送的时候才能够正确推送上去,否则会出现 __git 用户没有对 root 建立的文件夹的写权限__而推送失败。cd ~/.ssh
是进不去的,原因是登录时是root用户,如果这么进就进入root主目录了,所以只能 cd /home/git/.ssh
回车;vim authorized_keys
,把公钥复制粘贴到文件里,如果没有这个文件,vim会自动新建一个新的,文件名一定不能错。个人头像
,选择Setting
;SSH and GPG keys
,点击按钮New SSH key
,给公钥取一个名字作为区分,然后把内容贴在下面的内容框中,保存即可;至此,所有的配置工作完成,这里简单的梳理一下流程:
Git Bash Here
;git init
,在这个文件夹下新建了一个本地版本库,此时在文件夹下可以看到一个隐藏文件.git
;test.txt
;git add test.txt
,添加文件到本地的暂存区,表示想要git跟踪该文件的修改历史;git commit -m "注释"
,每次提交必须写注释,用来解释这次提交干了什么,便于回溯,表示把该文件提交到本地仓库,如果前面没有配置提交人信息的话,这里就需要补充上,否则不能提交;Git Bash Here
输入 git clone git@1.1.1.1:/home/demo
远程仓库的链接,回车即可,如果是 GitHub 命令IP地址的地方应该是 github.com
,另外,如果公私钥的配置有点问题,可能会需要输入该 git 用户远端服务器密码;git add 文件名
,文件名连续写多个,用空格分隔即可,添加文件到本地的工作空间,表示想要跟踪该文件的修改历史;git commit -m "注释"
,每次提交必须写注释,用来解释这次提交干了什么,便于回溯,表示把该文件提交到本地仓库;git push
,推送,表示把本地仓库里面的东西提交到远程仓库中;git pull
,拉取,记住四个字 先拉后推,每次推送到远程仓库之前,或者说,每次工作之前,都需要先从远端拉取内容,然后再进行开发,这个时候可能会遇到一些冲突的情况,解决冲突就是稍微麻烦一点的事情了,命令行暂时不会,开始使用界面解决冲突,比较好看。Git Clone
;URL
和Directory
,分别表示远端的版本库链接和本地的版本库名称,和前面命令行一样,URL填写如git@github.com:Chayeen/chayeen.github.io.git
,名称默认会是chayeen.github.io
,点击OK即可;Git commit -> master
;push
按钮,点击之后,推送文件到了远端;2017-11-27 20:34:24
如果后续有添加再说。
标签:远程服务 shell gen 进入 root 应该 利用 pass 回溯
原文地址:http://www.cnblogs.com/Chayeen/p/7920397.html