Linux下TortoiseGit 配置管理环境搭建

摘要:
a) 在Linux服务器上为多个用户设置一个git帐户/创建。home/git下的ssh目录(注意它是.ssh..)。与ssh交互式登录不同,.bash_profile中的环境变量在没有密码的情况下登录后不会生效,因此需要执行以下步骤。在Linux上修改sshd进程的配置文件。杀死HUPsshd现在使用c:\programfiles git-bin\ssh-iid_rsaroot@192.168.6.131echo$PATH确认PATH环境变量是否有效$Git格式patchmasteroredu配置开发人员自己的签名和电子邮件。

RedHat Git服务器安装
安装前准备
需要安装zlib,curl,rsync,libcrypto.
可以用# rpm -qa|grep zlib 命令检查
安装配置
1. 下载git-1.7.8.rc3.tar.gz
2. 解压后执行
   #configure --prefix=/usr/local/git
   #make
   #make install
3. 将/usr/local/git/libexec/git-core 和/usr/local/git/bin加入PATH
4.git软件安装完成后,该 创建git库
a)#cd repos-home
 #git-init-db
如果是创建bare目录,目录名字通常以.git结尾
 #git --bare init
b)跟踪文件
 git-add 和 git-update-index
c)提交文件
 $ git-commit -a -m "new day for git"


Windows Git客户端安装
安装
由于tortoiseGit是对msysgit的封装,所以在安装tortoiseGit前需要安装msysgit
http://code.google.com/p/msysgit/下载Git-1.7.4-preview20110204.exe后安装
http://code.google.com/p/tortoisegit下载tortoisegit.msi后安装
选择tortoisePlink用于与git服务器的ssh连接,
配置ssh互通
Git客户端与服务器端代码上传必须用ssh协议,所以需要配置两台机器支持ssh密钥直接登陆。
a) 在Linux服务器上建立一个git帐号,用于多人使用。
/home/git 下建立.ssh目录(注意,是.ssh。。有个点!)
chmod 700 -R .ssh

b) 在Windows中使用c:\program files\git\bin\ssh-keygen -t rsa 生成密匙和公匙,即id_rsa 和 id_rsa.pub
c) 将id_rsa.pub 拷贝到Linux服务器的/home/git/.ssh/中,添加到authorized_keys文件后,如果没有这个文件可以如下创建:
#cat id_rsa.pub > authorized_keys
将authorized_keys 权限改为600
修改/etc/ssh/sshd_config
RSAAuthentication yes            #开启RSA认证功能
PubkeyAuthentication yes      #开启公匙认证
AuthorizedKeysFile      .ssh/authorized_keys
d) 测试是否可以不用口令登陆Linux服务器
c:\program files\git\bin\ssh -i id_rsa root@192.168.6.131 echo $PATH

e) 转换公钥格式,以便TortoisePlink.exe 可用

执行C:\Program Files\TortoiseGit\bin\puttygen.exe, 选load按钮加载id_rsa后,保存

Linux下TortoiseGit 配置管理环境搭建第1张

执行TortoisePlink.exe -i c:\id_pri.ppk root@192.168.6.131 echo $path 测试不需要口令登录

从服务器clone版本库

右键点击目录,选择git-clone,

Linux下TortoiseGit 配置管理环境搭建第2张

从服务器端clone版本库后,即可在工作目录开始工作。

Linux下TortoiseGit 配置管理环境搭建第3张

常见问题:

Q: 在clone时出现以下问题bash: git-upload-pack Command not found
A: 该问题是由于服务器端环境变量PATH无法找到git-upload-pack程序。
    与ssh交互登录不同,无密码登录后.bash_profile中的环境变量没有生效,因此需要采取以下步骤。

   修改Linux上sshd进程的配置文件(一般为/etc/ssh/sshd_config,请用sshd -V确认)。增加如下配置行:
PermitUserEnvironment yes
此外在.ssh目录下编辑生成文件environment,内容可以考虑和.bash_profile相同,但不需要执行export
之后重启采集机上的sshd守护进程。Kill -HUP sshd

   现在再用c:\program files\git\bin\ssh -i id_rsa root@192.168.6.131 echo $PATH确认PATH环境变量是否生效。

常用命令
初始化git数据库
$ git-init-db
添加文件
$ git-add hello.c
查看修改、提交记录
$ git-log
创建分支
$ git-branch roredu
查看分支
$ git-branch
* master
roredu
切换工作分支
$ git-checkout roredu
Switched to branch "roredu"
$ git-branch
master
* roredu
提交到当前工作分支并书写标记。
$ git-commit -a
创建xux分支对于master的补丁文件。
$ git-format-patch master roredu
配置开发者自己的签名和email。
$ git-config --global user.name "roredu"
$ git-config --global user.email "roredu@gmail.com"
修改文件名
$ git-mv roredu.c helight.c
删除文件
$ git-rm roredu.c
合并:
切换到master,再选择Merge

如何clone版本库

cd /slview

git clone root@localhost:/slview/git-repos git-workhome

错误:

bash: git-upload-pack: command not found
fatal: The remote end hung up unexpectedly

解答:

[root@localhost code]# ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack 

 错误:

remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match

解决:

用git --bare init 建库

免责声明:文章转载自《Linux下TortoiseGit 配置管理环境搭建》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇中文latex参考文献格式AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

windows下git乱码解决方案

为了搞定git乱码问题,几乎把网上所有git乱码文章看了一遍,总算让我解决了。 我用的git和TortoiseGit版本: msysgit: V1.7.9 http://msysgit.googlecode.com/files/Git-1.7.9-preview20120201.exe Tortoisegit: V1.7.7.0 http://tortoi...

Linux添加用户组和删除用户组

1.添加用户组使用groupadd命令添加用户组:groupadd group_name此操作需由系统管理员进行。2.删除用户组使用groupdel命令删除用户组:groupdel group_name此操作需由系统管理员进行。3.定义组管理员使用gpasswd命令指定组管理员:gpasswd-A user group_name此操作需由系统管理员进行。4...

Linux记录屏幕输出log

应用场景: 请专家通过Console处理问题时,保留console输出无疑是非常有意义的。一来可留着作为维护日志,二来可供事后学习。 最简洁的方式是通过系统自带的script命令去记录。 $ script -a /tmp/xxx.log 当操作完毕后按住ctrl+d或shell执行exit退出时,即可结束script程序,log保存在指定的文件。 lo...

Linux操作NFS挂载、卸载等操作

一、NFS服务器的设置 NFS服务器的设定可以通过/etc/exports这个文件进行,设定格式如下 分享目录    主机名或IP(参数1,参数2) /binbin      172.17.1.*(rw,sync,no_root_squash) 可以设置的参数主要以下这些 rw:可读写的权限 ro:只读的权限 no_root_squash:登入到NFS主机...

Git 常用命令速查表(图文+表格)

一、 Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态git commit 提交git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am "init" 提交并且加注释git remote add origin git@192.168.1.119:ndsh...

Linux 线程占用CPU过高定位分析

今天朋友问我一个Linux程序CPU占用涨停了,该如何分析, CPU占用过高,模拟CPU占用过高的情况 先上一段代码: 1 #include <iostream> 2 #include <thread> 3 #include <vector> 4 5 6 int main(int argc, char *...