當前位置:首頁 » 操作系統 » linuxgit配置

linuxgit配置

發布時間: 2025-09-26 06:03:26

A. 如何在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

B. 在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下來就可以了。

C. 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

熱點內容
cmd如何打開資料庫配置管理 發布:2025-09-26 07:56:33 瀏覽:407
演算法里rst 發布:2025-09-26 07:56:32 瀏覽:348
linux判斷大小 發布:2025-09-26 07:53:20 瀏覽:720
phpdom擴展 發布:2025-09-26 07:53:19 瀏覽:571
聯通10m光纖上傳速度 發布:2025-09-26 07:33:45 瀏覽:515
永宏編程軟體 發布:2025-09-26 07:27:29 瀏覽:863
南昌哪個電腦配置好 發布:2025-09-26 07:21:19 瀏覽:605
壓縮機可以 發布:2025-09-26 07:02:22 瀏覽:59
手機什麼配置最差 發布:2025-09-26 07:02:22 瀏覽:532
佛山電信大帶寬雲伺服器 發布:2025-09-26 06:54:28 瀏覽:695