精华内容
参与话题
问答
  • git用户管理及管理

    万次阅读 2011-05-25 19:06:00
    <br />安装git http://progit.org/book/zh/ch1-4.html<br /><br />git麻烦在用户管理及管理上,下面上三种解决办法: <br />1.如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上...
    git在linux上的安装不多说,参考下面的文章就可以顺利完成,主要是依赖的库。

    安装git
    http://progit.org/book/zh/ch1-4.html

    git麻烦在用户管理及管理上,下面上三种解决办法:

    如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。   
    1.   
    2. 有好几个办法可以让团队的每个人都有访问权。第一个办法是给每个人建立一个账户,直截了当但过于繁琐。反复的运行 adduser 并且给所有人设定临时密码可不是好玩的。   
    3.   
    4. 第二个办法是在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的 ~/.ssh/authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这丝毫不会影响提交的数据——访问主机用的身份不会影响commit的记录。   
    5.   
    6. 另一个办法是让 SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。只要每个人都能获得主机的 shell 访问权,任何可用的 SSH 授权机制都能达到相同效  
    如果需要团队里的每个人都对仓库有写权限,又不能给每个人在服务器上建立账户,那么提供 SSH 连接就是唯一的选择了。我们假设用来共享仓库的服务器已经安装了 SSH 服务,而且你通过它访问服务器。
    
    有好几个办法可以让团队的每个人都有访问权。第一个办法是给每个人建立一个账户,直截了当但过于繁琐。反复的运行 adduser 并且给所有人设定临时密码可不是好玩的。
    
    第二个办法是在主机上建立一个 git 账户,让每个需要写权限的人发送一个 SSH 公钥,然后将其加入 git 账户的 ~/.ssh/authorized_keys 文件。这样一来,所有人都将通过 git 账户访问主机。这丝毫不会影响提交的数据——访问主机用的身份不会影响commit的记录。
    
    另一个办法是让 SSH 服务器通过某个 LDAP 服务,或者其他已经设定好的集中授权机制,来进行授权。只要每个人都能获得主机的 shell 访问权,任何可用的 SSH 授权机制都能达到相同效
    


    为了简便选用了第二种办法,这种办法采用SSH公钥认证。

    1、产生公钥
    Java代码
    后面直接回车直到结束,中间可以不需要任何设置,该命令将生成一对非对称的公/私密钥,默认它们被存储在:

    XP/2003用户:c:/Documents and Settings/登陆名/.ssh

    Vista用户: c:/Users/登陆名/.ssh

    该.ssh文件夹下面,密钥放在id_rsa文件里面,不用理会它;
    2、在linux服务器上将公钥加到git用户的authorized_keys文件中。
      可以参考:http://github.com/git-on-windows/rookies
      git用户的建立及设置参考:http://progit.org/book/zh/ch4-4.html

    注意,git上的仓库对git用户要有写权限,同时需要将/etc/ssh/sshd_config中将RSA认证打开,即:

    Java代码
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile  .ssh/authorized_keys
    


    另外,我在ubuntu上连接用git用户连接时,报Agent admitted failure to sign using the key 错误,查了一下需要启动ssh-agent,然后添加id_rsa到ssh-agent中,再连接就可以了。
    参考:http://www.jiangmiao.org/blog/559.html
    展开全文
  • git status命令看看结果即当前状态:  git status  # On branch master  # Changes not staged for commit:  # (use "git add file>..." to update what will be committed)  #...

    git status命令看看结果即当前状态:

    1.  git status  
    2. # On branch master  
    3. # Changes not staged for commit:  
    4. #   (use "git add <file>..." to update what will be committed)  
    5. #   (use "git checkout -- <file>..." to discard changes in working directory)  
    6. #  
    7. #    modified:   readme.txt  
    8. #  
    9. no changes added to commit (use "git add" and/or "git commit -a")  
    解释说明下
    git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
    要想查看修改
    git diff 文件名

    对文件作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步,第一步是git add:

    $ git add 文件名称
    再次看git status
    1. $ git status  
    2. # On branch master  
    3. # Changes to be committed:  
    4. #   (use "git reset HEAD <file>..." to unstage)  
    5. #  
    6. #       modified:   readme.txt  
    7. #  
    git 提示信息将要被提交的修改包括readme.txt
    git提交
    1. $ git commit -m "add distributed"  
    2. [master ea34578] add distributed  
    3.  1 file changed, 1 insertion(+), 1 deletion(-)  
    在提用git status 查看状态
    1. $ git status  
    2. # On branch master  
    3. nothing to commit (working directory clean)  

    Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。

    展开全文
  • 查看git用户与邮箱: git config user.name git config user.email 修改git用户与邮箱: git config --global user.name "xxx" git config --global user.email "xxx"

    查看git用户与邮箱:

    git config user.name
    git config user.email

    修改git用户与邮箱:

    git config --global user.name "xxx"
    git config --global user.email "xxx"
    展开全文
  • Git Git用户ssh公钥管理

    2015-01-03 14:43:54
    把所有用户的公钥保存在 authorized_keys 文件的做法,只能凑和一阵子,当用户数量达到几百人的规模时,管理起来就会十分痛苦。每次改删用户都必须登录服务器不去说,这种做法还缺少必要的权限管理 — 每个人都...

    4.7 服务器上的 Git - Gitosis

    Gitosis

    把所有用户的公钥保存在 authorized_keys 文件的做法,只能凑和一阵子,当用户数量达到几百人的规模时,管理起来就会十分痛苦。每次改删用户都必须登录服务器不去说,这种做法还缺少必要的权限管理 — 每个人都对所有项目拥有完整的读写权限。

    幸好我们还可以选择应用广泛的 Gitosis 项目。简单地说,Gitosis 就是一套用来管理 authorized_keys文件和实现简单连接限制的脚本。有趣的是,用来添加用户和设定权限的并非通过网页程序,而只是管理一个特殊的 Git 仓库。你只需要在这个特殊仓库内做好相应的设定,然后推送到服务器上,Gitosis 就会随之改变运行策略,听起来就很酷,对吧?

    Gitosis 的安装算不上傻瓜化,但也不算太难。用 Linux 服务器架设起来最简单 — 以下例子中,我们使用装有 Ubuntu 8.10 系统的服务器。

    Gitosis 的工作依赖于某些 Python 工具,所以首先要安装 Python 的 setuptools 包,在 Ubuntu 上称为 python-setuptools:

    $ apt-get install python-setuptools
    

    接下来,从 Gitosis 项目主页克隆并安装:

    $ git clone https://github.com/tv42/gitosis.git
    $ cd gitosis
    $ sudo python setup.py install
    

    这会安装几个供 Gitosis 使用的工具。默认 Gitosis 会把 /home/git 作为存储所有 Git 仓库的根目录,这没什么不好,不过我们之前已经把项目仓库都放在 /opt/git 里面了,所以为方便起见,我们可以做一个符号连接,直接划转过去,而不必重新配置:

    $ ln -s /opt/git /home/git/repositories
    

    Gitosis 将会帮我们管理用户公钥,所以先把当前控制文件改名备份,以便稍后重新添加,准备好让 Gitosis 自动管理 authorized_keys 文件:

    $ mv /home/git/.ssh/authorized_keys /home/git/.ssh/ak.bak
    

    接下来,如果之前把 git 用户的登录 shell 改为 git-shell 命令的话,先恢复 'git' 用户的登录 shell。改过之后,大家仍然无法通过该帐号登录(译注:因为 authorized_keys 文件已经没有了。),不过不用担心,这会交给 Gitosis 来实现。所以现在先打开 /etc/passwd 文件,把这行:

    git:x:1000:1000::/home/git:/usr/bin/git-shell
    

    改回:

    git:x:1000:1000::/home/git:/bin/sh
    

    好了,现在可以初始化 Gitosis 了。你可以用自己的公钥执行 gitosis-init 命令,要是公钥不在服务器上,先临时复制一份:

    $ sudo -H -u git gitosis-init < /tmp/id_dsa.pub
    Initialized empty Git repository in /opt/git/gitosis-admin.git/
    Reinitialized existing Git repository in /opt/git/gitosis-admin.git/
    

    这样该公钥的拥有者就能修改用于配置 Gitosis 的那个特殊 Git 仓库了。接下来,需要手工对该仓库中的post-update 脚本加上可执行权限:

    $ sudo chmod 755 /opt/git/gitosis-admin.git/hooks/post-update
    

    基本上就算是好了。如果设定过程没出什么差错,现在可以试一下用初始化 Gitosis 的公钥的拥有者身份 SSH 登录服务器,应该会看到类似下面这样:

    $ ssh git@gitserver
    PTY allocation request failed on channel 0
    ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
      Connection to gitserver closed.
    

    说明 Gitosis 认出了该用户的身份,但由于没有运行任何 Git 命令,所以它切断了连接。那么,现在运行一个实际的 Git 命令 — 克隆 Gitosis 的控制仓库:

    # 在你本地计算机上
    $ git clone git@gitserver:gitosis-admin.git
    

    这会得到一个名为 gitosis-admin 的工作目录,主要由两部分组成:

    $ cd gitosis-admin
    $ find .
    ./gitosis.conf
    ./keydir
    ./keydir/scott.pub
    

    gitosis.conf 文件是用来设置用户、仓库和权限的控制文件。keydir 目录则是保存所有具有访问权限用户公钥的地方— 每人一个。在 keydir 里的文件名(比如上面的 scott.pub)应该跟你的不一样 — Gitosis 会自动从使用 gitosis-init 脚本导入的公钥尾部的描述中获取该名字。

    看一下 gitosis.conf 文件的内容,它应该只包含与刚刚克隆的 gitosis-admin 相关的信息:

    $ cat gitosis.conf
    [gitosis]
    
    [group gitosis-admin]
    members = scott
    writable = gitosis-admin
    

    它显示用户 scott — 初始化 Gitosis 公钥的拥有者 — 是唯一能管理 gitosis-admin 项目的人。

    现在我们来添加一个新项目。为此我们要建立一个名为 mobile 的新段落,在其中罗列手机开发团队的开发者,以及他们拥有写权限的项目。由于 'scott' 是系统中的唯一用户,我们把他设为唯一用户,并允许他读写名为 iphone_project 的新项目:

    [group mobile]
    members = scott
    writable = iphone_project
    

    修改完之后,提交 gitosis-admin 里的改动,并推送到服务器使其生效:

    $ git commit -am 'add iphone_project and mobile group'
    [master 8962da8] add iphone_project and mobile group
     1 file changed, 4 insertions(+)
    $ git push origin master
    Counting objects: 5, done.
    Compressing objects: 100% (3/3), done.
    Writing objects: 100% (3/3), 272 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@gitserver:gitosis-admin.git
       fb27aec..8962da8  master -> master
    

    在新工程 iphone_project 里首次推送数据到服务器前,得先设定该服务器地址为远程仓库。但你不用事先到服务器上手工创建该项目的裸仓库— Gitosis 会在第一次遇到推送时自动创建:

    $ git remote add origin git@gitserver:iphone_project.git
    $ git push origin master
    Initialized empty Git repository in /opt/git/iphone_project.git/
    Counting objects: 3, done.
    Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done.
    Total 3 (delta 0), reused 0 (delta 0)
    To git@gitserver:iphone_project.git
     * [new branch]      master -> master
    

    请注意,这里不用指明完整路径(实际上,如果加上反而没用),只需要一个冒号加项目名字即可 — Gitosis 会自动帮你映射到实际位置。

    要和朋友们在一个项目上协同工作,就得重新添加他们的公钥。不过这次不用在服务器上一个一个手工添加到 ~/.ssh/authorized_keys 文件末端,而只需管理 keydir 目录中的公钥文件。文件的命名将决定在 gitosis.conf 中对用户的标识。现在我们为 John,Josie 和 Jessica 添加公钥:

    $ cp /tmp/id_rsa.john.pub keydir/john.pub
    $ cp /tmp/id_rsa.josie.pub keydir/josie.pub
    $ cp /tmp/id_rsa.jessica.pub keydir/jessica.pub
    

    然后把他们都加进 'mobile' 团队,让他们对 iphone_project 具有读写权限:

    [group mobile]
    members = scott john josie jessica
    writable = iphone_project
    

    如果你提交并推送这个修改,四个用户将同时具有该项目的读写权限。

    Gitosis 也具有简单的访问控制功能。如果想让 John 只有读权限,可以这样做:

    [group mobile]
    members = scott josie jessica
    writable = iphone_project
    
    [group mobile_ro]
    members = john
    readonly = iphone_project
    

    现在 John 可以克隆和获取更新,但 Gitosis 不会允许他向项目推送任何内容。像这样的组可以随意创建,多少不限,每个都可以包含若干不同的用户和项目。甚至还可以指定某个组为成员之一(在组名前加上 @前缀),自动继承该组的成员:

    [group mobile_committers]
    members = scott josie jessica
    
    [group mobile]
    members   = @mobile_committers
    writable  = iphone_project
    
    [group mobile_2]
    members   = @mobile_committers john
    writable  = another_iphone_project
    

    如果遇到意外问题,试试看把 loglevel=DEBUG 加到 [gitosis] 的段落(译注:把日志设置为调试级别,记录更详细的运行信息。)。如果一不小心搞错了配置,失去了推送权限,也可以手工修改服务器上的 /home/git/.gitosis.conf 文件 — Gitosis 实际是从该文件读取信息的。它在得到推送数据时,会把新的 gitosis.conf 存到该路径上。所以如果你手工编辑该文件的话,它会一直保持到下次向gitosis-admin 推送新版本的配置内容为止。

    展开全文
  • Git用户管理手册

    2016-04-13 08:56:12
  • Git用户管理

    2018-10-10 19:21:55
    Git使用过程中,会遇到多用户权限验证问题,此处做一个简单介绍; 1、生成公钥 2、github ssh绑定(或gitee) 3、git ~/.ssh/ 目录下config文件配置 4、关联项目并配置本地仓库用户 1、Git公钥生成示例,分别...
  • git用户管理

    2018-05-07 16:50:25
    最简单的Github多账户进行管理 方式有点啥?...取消git的global用户以及邮箱 git config --global --unset user.name git config --global --unset user.email 第二步: 在不同的仓库中配置不同的...
  • 开篇就提到过,Git是一个分布式版本管理系统。但是到现在为止,我们所有的演练都是在本地Git仓库。如果想与他人合作,还需要一个远程的 Git 仓库。尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励...
  • git 创建管理用户

    2019-03-22 02:19:00
    Windows下Git多账号配置,同一电脑多个ssh-key的管理 一台电脑上的git同时使用两个github账户 git之https或http方式设置记住用户名和密码的方法 转载于:...
  • 以前都在使用svn,现在用git,我拥有管理员权限,但是怎么给其他开发人员分配权限呢?
  • git 管理用户角色分类

    2020-06-30 17:20:23
    在GitHub或者阿里云的代码管理用户权限:Guest、Reporter、Developer、Master、Owne 1.Guest:可以创建issue、发表评论、不能读写版本库 2.Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限 3....
  • 远程git服务器上 1,获取到安装包 [root@135 ~]#cd /home/git [root@135 git]# git clone https://github.com/res0nat0r/gitosis 2,,python进行安装 [root@135 git]#cd /home/git/gitosis [root@135 gitosis]...
  • 1、初始化仓库 mkdir /home/git # 在自己指定的文件夹下 git init --bare sample.git 2、修改权限 ...3、创建用户用户组 useradd gituser1 passwd gituser1 # 设置密码 useradd gituser2 passw...
  • 4.1 服务器上的 Git - 协议 到目前为止,你应该已经有办法使用 Git 来完成日常工作。 然而,为了使用 Git 协作功能,你还需要有远程的 Git 仓库。 尽管在技术上你可以从个人仓库进行推送(push)和拉取(pull)来...
  • git用户管理及权限控制

    千次阅读 2019-02-13 19:09:32
    用过svn的朋友都知道,每个开发者都需要一个svn账号,通过这个查看项目的提交记录,可以更加清楚项目的开发情况,便于版本控制。git也是如此。...首先建新增用户,然后为了避免git用户登录操作系统,可以...
  • 参考文章: http://blog.chinaunix.net/uid-15174104-id-3843570.html ... 目标: server:192.168.111.198,ubuntu-16.04 admin:192.168.111.199,windows7 clie...
  • 因为在同时使用多个git工具(gitlab,github.gitee)由于账户的问题和这个仓库指定地址,导致拉代码和推代码不能正常运行 问题解决: 对于多个git直接的切换推拉代码应该注意 切换用户名:(准确的说这个不一定要...
  • 阿里云搭建私有Git用户管理

    千次阅读 2013-10-09 03:37:38
    本文介绍了阿里云借助gitosis以及gitweb搭建私有Git服务的方法。
  • ubuntu端: $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/djy/.ssh/id_rsa): (回车生成默认文件/home/dj...
  • gitosis.conf [group 项目名字] writable = 项目名字 members = 用户1 用户2 ...git commit -am "add member 用户 and project 项目名字" git push mkdir 项目 cd 项目 git init touch hello.txt
  • 私有git服务多用户管理及权限控制

    万次阅读 2017-10-10 17:10:35
    关于git用户和权限管理
  • Git管理

    2019-06-06 09:16:02
    一、Git安装 去官网下载git 选择对应系统... 安装好后在git bash里配置用户信息,配置用户信息如下图所示 git config --list里查看用户名邮箱是否配置成功 SourceTree SourceTree 是 Windows 和Mac OS X 下...
  • GIT项目管理

    2019-11-27 16:32:07
    git配置查看git的配置git 下载代码git 上传...git config --global 对当前用户的所有仓库有效 git config --system 对系统所有登录的用户有效 查看当前所有的config的配置,加 --list git config --list --local g...
  • Git 分支管理

    千次阅读 2017-11-03 18:05:11
    Git 分支管理 一、主分支Master 首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。 Git主分支的名字,默认叫做Master。它是自动建立的,版本库初始化...
  • git 仓库管理

    2018-01-18 20:19:27
    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。git ...

空空如也

1 2 3 4 5 ... 20
收藏数 3,804
精华内容 1,521
关键字:

git用户管理