git配置linux
① 在linux下搭建Git服务器
众所周知,版本系统在开发环境中是必不可少的,但是我们可以把代码免费的托管到GitHub上,如果我们不原意公开项目的源代码,公司又不想付费使用,那么我们可以自己搭建一台Git服务器,可以用Gitosis来管理公钥,还是比较方便的。
搭建环境:
服务器 CentOS6.6 + git(version 1.8.3.1)
客户端 Windows10 + git(version 2.11.1.windows.1)
1. 安装Git相关软件
Linux是服务器端系统,Windows作为客户端系统,分别安装Git
安装客户端:
下载 Git for Windows,地址:https://git-for-windows.github.io/
安装完之后,可以使用Git Bash作为命令行客户端。
安装Gitosis
出现下面的信息表示安装成功了
2. 服务器端创建git用户来管理Git服务
3. 配置公钥
在Windows上配置管理者,git服务器需要一些管理者,通过上传开发者机器的公钥到服务器,添加成为git服务器的管理者,打开git命令行
4. 配置gitosis
使用git用户并初始化gitosis
在Windows上机器上clone gitosis-admin到管理者主机
gitosis.conf: git服务器配置文件
keydir: 存放客户端公钥
配置 gitosis.conf 文件
在Windows管理者机器上创建本地test仓库,并上传到git服务端
提交到远程服务器
服务端会自动创建test仓库
5.添加其他git用户开发者
由于公司开发团队人数不断增多,手动添加开发者私钥到/home/git/.ssh/authorized_keys比较麻烦,通过上面的Windows机器的管理者统一收集其他开发者的私钥id_rsa.pub文件,然后传到服务器上,配置好后,用户即获得项目权限,可以从远程仓库拉取和推送项目,达到共同开发项目。
推送完成后,新加进来的开发者就可以进行项目的开发了,后续增加人员可以这样添加进来,开发者直接把仓库clone下来就可以了。
② Linux绯荤粺涓婫it镄勫熀链閰岖疆鍜屼娇鐢ㄧず渚
git config閰岖疆鏂囦欢
涓.Git宸茬粡鍦ㄤ綘镄勭郴缁熶腑浜嗭纴浣犱细锅氢竴浜涗簨𨱍呮潵瀹㈡埛鍖栦綘镄凣it鐜澧冦备綘鍙闇瑕佸仛杩欎簺璁剧疆涓娆;鍗充娇浣犲崌绾т简锛屼粬浠涔熶细缁戝畾鍒颁綘镄勭幆澧冧腑銆备綘涔熷彲浠ュ湪浠讳綍镞跺埢阃氲繃杩愯屽懡浠ゆ潵閲嶆柊镟存敼杩欎簺璁剧疆銆
Git链変竴涓宸ュ叿琚绉颁负git config锛屽畠鍏佽镐綘銮峰缑鍜岃剧疆閰岖疆鍙橀噺;杩欎簺鍙橀噺鍙浠ユ带鍒禛it镄勫栬傚拰镎崭綔镄勫悇涓鏂归溃銆傝繖浜涘彉閲忓彲浠ヨ瀛桦偍鍦ㄤ笁涓涓嶅悓镄勪綅缃锛
1./etc/gitconfig 鏂囦欢锛氩寘钖浜嗛傜敤浜庣郴缁熸墍链夌敤鎴峰拰镓链夊簱镄勫笺傚傛灉浣犱紶阃掑弬鏁伴夐”钬--system钬 缁 git config锛屽畠灏嗘槑纭镄勮诲拰鍐栾繖涓鏂囦欢銆
2.~/.gitconfig 鏂囦欢 锛氩叿浣揿埌浣犵殑鐢ㄦ埛銆备綘鍙浠ラ氲繃浼犻--global 阃夐”浣縂it 璇绘垨鍐栾繖涓鐗瑰畾镄勬枃浠躲
3.浣崭簬git鐩褰旷殑config鏂囦欢 (涔熷氨鏄 .git/config) 锛氭棤璁轰綘褰揿墠鍦ㄧ敤镄勫簱鏄浠涔堬纴鐗瑰畾鎸囧悜璇ュ崟涓镄勫簱銆傛疮涓绾у埆閲嶅啓鍓崭竴涓绾у埆镄勫笺傚洜姝わ纴鍦.git/config涓镄勫艰嗙洊浜嗗湪/etc/gitconfig涓镄勫悓涓涓鍊笺
鍦╓indows绯荤粺涓锛孏it鍦$HOME鐩褰曚腑镆ユ垒.gitconfig鏂囦欢(瀵瑰ぇ澶氭暟浜烘潵璇达纴浣崭簬C:Documents and Settings$USER涓)銆傚畠涔熶细镆ユ垒/etc/gitconfig锛屽敖绠″畠鏄鐩稿逛簬Msys 镙圭洰褰旷殑銆傝繖鍙鑳芥槸浣犲湪Windows涓杩愯屽畨瑁呯▼搴忔椂鍐冲畾瀹夎匞it镄勪换浣曞湴鏂广
浜.浣犵殑镙囱瘑(Your Identity)
2.1銆褰扑綘瀹夎匞it钖庨栧厛瑕佸仛镄勪簨𨱍呮槸璁剧疆浣犵殑鐢ㄦ埛钖岖О鍜宔-mail鍦板潃銆傝繖鏄闱炲父閲嶈佺殑锛屽洜涓烘疮娆Git鎻愪氦閮戒细浣跨敤璇ヤ俊鎭銆傚畠琚姘歌繙镄勫祵鍏ュ埌浜嗕綘镄勬彁浜や腑锛
浠g爜濡备笅:
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
閲岖敌涓阆嶏纴浣犲彧闇瑕佸仛涓娆¤繖涓璁剧疆銆傚傛灉浣犱紶阃掍简 --global 阃夐”锛屽洜涓篏it灏嗘绘槸浼氢娇鐢ㄨヤ俊鎭𨱒ュ勭悊浣犲湪绯荤粺涓镓锅氱殑涓鍒囨搷浣溿傚傛灉浣犲笇链涘湪涓涓鐗瑰畾镄勯”鐩涓浣跨敤涓嶅悓镄勫悕绉版垨e-mail鍦板潃锛屼綘鍙浠ュ湪璇ラ”鐩涓杩愯岃ュ懡浠よ屼笉瑕--global阃夐”銆
2.2 浣犵殑缂栬緫鍣(Your Editor)
鐜板湪锛屼綘镄勬爣璇嗗凡缁忚剧疆锛屼綘鍙浠ラ厤缃浣犵殑缂虹渷鏂囨湰缂栬緫鍣锛孏it鍦ㄩ渶瑕佷綘杈揿叆涓浜涙秷鎭镞朵细浣跨敤璇ユ枃链缂栬緫鍣ㄣ傜己鐪佹儏鍐典笅锛孏it浣跨敤浣犵殑绯荤粺镄勭己鐪佺紪杈戝櫒锛岃繖阃氩父鍙鑳芥槸vi 鎴栬 vim銆傚傛灉浣犳兂浣跨敤涓涓涓嶅悓镄勬枃链缂栬緫鍣锛屼緥濡侲macs锛屼綘鍙浠ュ仛濡备笅镎崭綔锛
浠g爜濡备笅:
$ git config --global core.editor emacs
2.3 浣犵殑姣旇缉宸ュ叿(Your Diff Tool)
鍙﹀栦竴涓浣犲彲鑳介渶瑕侀厤缃镄勬湁鐢ㄧ殑阃夐”鏄缂虹渷镄勬瘆杈冨伐鍏峰畠鐢ㄦ潵瑙e喅钖埚苟镞剁殑鍐茬獊銆备緥濡傦纴浣犳兂浣跨敤vimdiff:
浠g爜濡备笅:
$ git config --global merge.tool vimdiff
Git鍙浠ユ帴鍙梜diff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, 鍜 opendiff浣滀负链夋晥镄勫悎骞跺伐鍏枫备綘涔熷彲浠ヨ剧疆涓涓瀹㈡埛鍖栫殑宸ュ叿;镆ョ湅绗7绔犺幏寰楁洿澶氩叧浜庢ょ殑淇℃伅銆
2.4 妫镆ヤ綘镄勮剧疆(Checking Your Settings)
濡傛灉浣犳兂妫镆ヤ綘镄勮剧疆锛屼綘鍙浠ヤ娇鐢 git config --list 锻戒护𨱒ュ垪鍑篏it鍙浠ュ湪璇ュ勬垒鍒扮殑镓链夌殑璁剧疆:
浠g爜濡备笅:
$ git config --list
user.name=Scott Chacon
[email protected]
color.status=auto
color.branch=auto
color.interactive=auto
color.diff=auto
...
浣犲彲鑳戒细鐪嫔埌涓涓鍏抽敭瀛楀嚭鐜板氭★纴杩欐槸锲犱负Git浠庝笉钖岀殑鏂囦欢涓(渚嫔傦细/etc/gitconfig浠ュ强~/.gitconfig)璇诲彇鐩稿悓镄勫叧阌瀛椼 鍦ㄨ繖绉嶆儏鍐典笅锛屽规疮涓鍞涓镄勫叧阌瀛楋纴Git浣跨敤链钖庣殑闾d釜鍊笺
浣犱篃鍙浠ユ煡鐪婫it璁や负镄勪竴涓鐗瑰畾镄勫叧阌瀛楃洰鍓岖殑鍊硷纴浣跨敤濡备笅锻戒护 git config {key}:
浠g爜濡备笅:
$ git config user.name
Scott Chacon
2.5 銮峰彇甯锷(Getting help)
濡傛灉褰扑綘鍦ㄤ娇鐢℅it镞堕渶瑕佸府锷╋纴链変笁绉嶆柟娉曞彲浠ヨ幏寰椾换浣昰it锻戒护镄勬坠鍐岄〉(manpage)甯锷╀俊鎭:
浠g爜濡备笅:
$ git help
$ git --help
$ man git-
渚嫔傦纴浣犲彲浠ヨ繍琛屽备笅锻戒护銮峰彇瀵筩onfig锻戒护镄勬坠鍐岄〉甯锷:
浠g爜濡备笅:
$ git help config
杩欎簺锻戒护闱炲父鍙嫔ソ锛屽洜涓轰綘鍙浠ュ湪浠讳綍鍦版柟瀛桦彇浠栦滑锛屽嵆浣块潪鍦ㄧ嚎鐘舵併傚傛灉镓嫔唽椤靛拰链涔︿粛铹朵笉瓒宠屼綘闇瑕佷釜浜虹殑甯锷╋纴浣犲彲浠ヨ瘯镌浣跨敤Freenode IRCServer涓婄殑#git鎴#github 棰戦亾(irc.freenode.net)銆傝繖浜涢戦亾浼氩畾链熺敱鏁扮栌涓瀵笹it闱炲父镡熸倝镄勪笓涓氢汉澹镓缁存姢锛屼粬浠浼氶潪甯镐箰镒忓府锷╀綘銆
2.6 镐荤粨(Summary)
浣犲簲璇ュ笹it鏄浠涔堜互鍙奊it涓庝綘鍙鑳戒娇鐢ㄧ殑鍏跺畠CVCS涔嬮棿镄勪笉钖屾湁浜嗕竴涓锘烘湰镄勪简瑙c备綘涔熷簲褰揿湪浣犵殑绯荤粺涓链変简涓涓鍏锋湁浣犱釜浜烘爣璇嗙殑鍙浠ュ伐浣灭殑Git鐗堟湰銆傛槸镞跺欐潵瀛︿範涓浜汫it镄勫熀链鐭ヨ瘑浜嗐
git 瀹为檯浣跨敤璁板綍
1銆乬it 鎻愪氦浠g爜阌栾瀹炰緥鍒嗘瀽
浠g爜濡备笅:
$ git push origin master
浠g爜濡备笅:
To [email protected]:k6.git
! [rejected] master - master (non-fast-forward)
error: failed to push some refs to '[email protected]:k6.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
cbk@YCS:~/work/k6_130708/k6$ git fecth
git: 'fecth' is not a git command. See 'git --help'.
git push 阌栾锛屽洜涓烘病链夊厛pull链鏂扮殑浠g爜锛岄渶瑕佷互涓嬫搷浣滐细
浠g爜濡备笅:
$ git fetch origin
$ git merge origin/master
$ git push origin master
濡傛灉瀹夎単it钖庢病链夎剧疆浣犵殑鐢ㄦ埛钖岖О鍜宔-mail鍦板潃锛岃缮闇瑕佸厛镓ц岋细
浠g爜濡备笅:
$ git config --global user.name "cbk"
$ git config --global user.email [email protected]
杩欐槸闱炲父閲嶈佺殑锛屽洜涓烘疮娆Git鎻愪氦閮戒细浣跨敤璇ヤ俊鎭銆傚畠琚姘歌繙镄勫祵鍏ュ埌浜嗕綘镄勬彁浜や腑锛
閲岖敌涓阆嶏纴浣犲彧闇瑕佸仛涓娆¤繖涓璁剧疆銆傚傛灉浣犱紶阃掍简 --global 阃夐”锛屽洜涓篏it灏嗘绘槸浼氢娇鐢ㄨヤ俊鎭𨱒ュ勭悊浣犲湪绯荤粺涓镓锅氱殑涓鍒囨搷浣溿傚傛灉浣犲笇链涘湪涓涓鐗瑰畾镄勯”鐩涓浣跨敤涓嶅悓镄勫悕绉版垨e-mail鍦板潃锛屼綘鍙浠ュ湪璇ラ”鐩涓杩愯岃ュ懡浠よ屼笉瑕--global阃夐”銆
鍏蜂綋鍒版ら梾棰桡纴濡傛灉娌℃湁璁剧疆浣犵殑鐢ㄦ埛钖岖О鍜宔-mail鍦板潃锛屽垯涓鐩存g‘镞犳硶push浠g爜銆
2銆丢it 璺熻釜涓涓鏂囦欢镄勬彁浜ゅ巻鍙茶板綍
鍦ㄨ窡韪狝ndroid浠g爜鏄锛屾湁镞跺椤彂鐜版煇涓鍏抽敭鏂囦欢琚鏀瑰姩浜嗭纴闇瑕佽窡韪镆ョ湅瀵硅繖涓鍏抽敭鏂囦欢镄勬墍链塩ommit镄勮板綍锛屼互渚跨悊瑙e叾涓镄勪慨鏀瑰师锲犲拰杩囩▼锛
浠g爜濡备笅:
git log -p 钬渇ile name钬
鏄剧ず杩欎釜鏂囦欢镄勬疮涓琛岀殑链钖庢彁浜commit锛屾柟渚垮畾浣峜ommit锛
浠g爜濡备笅:
git blame 钬渇ile name"
鏄剧ずlog璇︾粏淇鏀硅板綍锛
git show [log_id_num]锛屼緥濡傦细
浠g爜濡备笅:
git show
3銆乬it鍒濆嫔寲涔媑it config
1). 涓嬮溃镄勫懡浠ゅ皢淇鏀/home/[username]/.gitconfig鏂囦欢锛屼篃灏辨槸璇翠笅闱㈢殑閰岖疆鍙瀵规疮涓涓狲sh镄勭敤鎴峰彲瑙侊纴镓浠ユ疮涓浜洪兘闇瑕佸仛銆
鎻愪氦浠g爜镄刲og閲岄溃浼氭樉绀烘彁浜よ呯殑淇℃伅
浠g爜濡备笅:
git config --global user.name [username]
git config --global user.email [email]
鍦╣it锻戒护涓寮钖棰滆壊鏄剧ず
浠g爜濡备笅:
git config --global color.ui true
2). 涓嬮溃镄勫懡浠ゅ皢淇鏀/etc/gitconfig鏂囦欢锛岃繖鏄鍏ㄥ眬閰岖疆锛屾墍浠admin𨱒ュ仛涓娆″氨鍙浠ヤ简銆
閰岖疆涓浜沢it镄勫父鐢ㄥ懡浠alias
浠g爜濡备笅:
sudo git config --system alias.st status #git st
sudo git config --system alias.ci commit #git commit
sudo git config --system alias.co checkout #git co
sudo git config --system alias.br branch #git branch
3). 涔熷彲浠ヨ繘鍏ュ伐浣沧牴鐩褰曪纴杩愯実it config -e锛岃繖镙峰氨鍙浼氢慨鏀瑰伐浣滃尯镄.git/config鏂囦欢锛屼絾鏄𨱌傛椂杩樼敤涓岖潃.
git config鏂囦欢镄刼verride椤哄簭鏄3)1)2).
4.鐗堟湰锲为
浠g爜濡备笅:
git reset --hard commit_id
浠g爜濡备笅:
git checkout commit_id
浠g爜濡备笅:
git clean 钬揹f commit_id
③ ubuntu虚拟机linux下怎么创建git仓库
一、 在 Ubuntu 系统中部署 Git Server
在Ubuntu系统中,这一步相当简单,只需要在Terminal中输入
sudo apt-get update
完成这一步后,就可以安装 git core 组件,通常情况下,安装在系统中的git 只是一个简单的客户端,包括一些最基本的命令以及特性,而作为保管代码的仓库,则还需要其他特性支持,所以需要安装 git core,如果之前已经安装了 git,那么仍然需要安装 git core
sudo apt-get install git-core
二、配置Git Server
完成这两步之后,就可以开始配蔽中置 Git Server 了。
增加 developers 组以及创建保存项目的仓库
需要创建一个新的用户宏碰山组,并且将创建的仓库都放置在名为 git 的用户下,当然git 要隶属于 developers 组,这样也是为了方便将来的管理需要。
sudo groupadd developers
cd /home/
sudo mkdir git
sudo useradd git -d /home/git
以上四个命令分别为创建 developers 用户组, 并在/home/ 文件夹下为名为 git 的用户创建工作目录,创建名为 git 的用户账户并将它的工作目录指向/home/git。
之后,需要将增加的用户添加到 developers 用吵贺户组中,这一步一般通过修改/etc/group 文件达成,在正式修改 /etc/group 文件前或许需要先做一个备份。找到创建的用户组,譬如例子中创建的 developers。或许能在文件中看到类似的一行:
④ 如何在linux搭建git远程版本库
服务端配置
1、安装git
2、新建一个用户,只能用来上传代码,而不能通过ssh登录,比如git用户
adser git
chsh -s $(command -v git-shell) git
使用git-shell替换bash ,这样git用户就不能通过ssh登录
这一步会有警告,提示git-shell不在shell列表里,不用担心。
3、添加ssh公钥,在/home/git/.ssh/authorized_keys里添加客户端的公钥,一行一个。
如果没有文件,可以新建
mkdir /home/git/.ssh
touch /home/git/.ssh/authorized_keys
客户端生成公钥的方法是 ssh-keygen,
windows的在C:\Users\用户名\.ssh\ 目录下,打开id_rsa.pub
4、初始化一个空的git仓库
cd /var
git init --bare sample.git
chown -R git:git sample.git
这一步是让目录可以被git用户修改,否则会出现“permission denied”错误。
客户端
1、可以git clone了
git clone git@服务器:/var/sample.git 即服务器上的文件路径
或者ssh,建议ssh,方便设置端口号
git clone ssh://git@服务器:端口号/var/sample.git
⑤ linux怎么搭建git服务器
GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。
搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
假设你已经有sudo权限的用户账号,下面,正式开始安装。
第一步,安装git:
$ sudo apt-get install git
第二步,创建一个git用户,用来运行git服务:
$ sudo adser git
第三步,创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.git
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
$ sudo chown -R git:git sample.git
第五步,禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
第六步,克隆远程仓库:
现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
剩下的推送就简单了。
⑥ linux如何搭建git
1、环境准备
服务器:CentOS 7.3 + git (1.8.3.1)
客户端:win10 + git (2.17.0.windows.1)
2、服务器安装git
yum install -y git
3、创建git用户,管理 git服务
[root@localhost home]# useradd git
[root@localhost home]# passwd git
4、服务器创建git 仓库
设置/home/git/repository-git 为git 服务器仓库,然后把 git 仓库的 owner 修改为 git 用户。
复制代码
[root@localhost git]# mkdir repository-git
[root@localhost git]# git init --bare repository-git/
Initialized empty Git repository in /home/git/repository-gt/
[root@localhost git]# chown -R git:git repository-git/
5、客户端安装git
下载 Git for Windows,地址:https://git-for-windows.github.io/
安装完之后,可以使用 Git Bash 作为命令行客户端。
5.1、选择一个目录 F:\project\sell 作为本地仓库,右键进入Git Bash 命令行模式
初始化本地仓库:git init
5.2、尝试克隆一个服务器的空仓库到本地仓库
git clone [email protected]:/home/git/repository-gt
第一次连接到目标 Git 服务器时会得到一个提示:
The authenticity of host '192.168.116.129(192.168.116.129)' can't be established.
RSA key fingerprint is SHA256:Ve6WV/.
Are you sure you want to continue connecting (yes/no)?
选择 yes:
Warning: Permanently added '192.168.116.129' (RSA) to the list of known hosts.
此时 C:\Users\用户名\.ssh 下会多出一个文件 known_hosts,以后在这台电脑上再次连接目标 Git 服务器时不会再提示上面的语句。
⑦ Linux系统中怎么安装Git
一、使用包管理器安装Git
Git已经被所有的主流Linux发行版所支持。所以安装它最简单的方法就是使用各个Linux发行版的包管理器。
1、Debian, Ubuntu, 或 Linux Mint
$sudoapt-getinstallgit
2、Fedora, CentOS 或 RHEL
$sudoyuminstallgit或$sudodnfinstallgit
3、Arch Linux
$sudopacman-Sgit
4、OpenSUSE
$sudozypperinstall闭型git
5、Gentoo
$emerge--ask--verbosedev-vcs/git
二、从源码安装Git
如果由于某些原因,希望从源码安装Git,按照如下介绍操作。
1、安装依赖包
在构建Git之前,先安装它的依赖包。
//Debian,Ubuntu或LinuxMint
$sudoapt-getinstalllibcurl4-gnutls-devlibexpat1-devgettextlibz-devlibssl-devasciidocxmltodocbook2x
//Fedora,CentOS或RHEL
$sudoyuminstallcurl-develexpat-develgettext-developenssl-develzlib-develasciidocxmltodocbook2x
2、从github官网下载最新版本的Git。然后在/usr下构建和安装。
注意,如果打算安装到其大滑他目录下(例如:/opt),那就把“--prefix=/usr”这个配置命令使用其他路径替换掉。
$cdgit-x.x.x
$滚态腊makeconfigure
$。/configure--prefix=/usr
$makealldocinfo
$sudomakeinstallinstall-docinstall-htmlinstall-info