日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GIT服务器搭建(转载)

發布時間:2025/4/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GIT服务器搭建(转载) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、GIT服務器的搭建

1. 安裝Git

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">yum -y install git </pre>

2. 創建git用戶

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">adduser git</pre>

3. 創建證書登陸

收集所有客戶端需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導入到/home/git/.ssh/authorized_keys文件里,一行一個。

保證ssh不輸入密碼能連接到git用戶

4. 初始化

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@app-01 opt]# git init --bare demo.git
Initialized empty Git repository in /opt/demo.git/</pre>

Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為服務器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務器上去改工作區,并且服務器上的Git倉庫通常都以.git結尾。

5. 把owner改為git

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">chown -R git:git demo.git/</pre>

6. 禁用shell登陸

將/bin/bash改成

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@app-01 opt]# tail -1f /etc/passwd
git:x:1002:1006::/home/git:/usr/bin/git-shell</pre>

至此git服務器就搭建完成了。

二、GIT的基本使用

1. 克隆遠程倉庫

在客戶端操作

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@wls12c DEV]$ git clone ssh://git@120.77.85.77:2121/opt/demo.git
Initialized empty Git repository in /root/DEV/demo/.git/ warning: You appear to have cloned an empty repository.
[root@wls12c DEV]$ ls
demo</pre>

2. 初始化客戶端的工作環境

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@wls12c demo]$ git config --global user.name "Scott Cho" [root@wls12c demo]$ git config --global user.email "root@wls12c.com" [root@wls12c demo]$ git config --global core.editor vim</pre>

3. 向Git本地倉庫中提交一個新文件

[ 復制代碼

](javascript:void(0); "復制代碼")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@wls12c demo]$ echo "I successfully cloned the Git repository" > readme.txt
[root@wls12c demo]$ git add readme.txt #增加數據到暫存區
[root@wls12c demo]$ git status        #查看當前工作目錄的狀態

On branch master

Initial commit

Changes to be committed:

(use "git rm --cached <file>..." to unstage)

new file: readme.txt

[root@wls12c demo]$ git log
fatal: bad default revision 'HEAD' [root@wls12c demo]$ git commit -m "Clone the Git repository" [master (root-commit) b548d3b] Clone the Git repository 1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 readme.txt
[root@wls12c demo]$ git log
commit b548d3bd469cf5f183e9be9a3b2949f6361b5385
Author: Scott Cho root@wls12c.com Date: Mon Feb 27 17:42:29 2017 +0800 Clone the Git repository</pre>

[ 復制代碼

](javascript:void(0); "復制代碼")

** 常見技巧:**

**  查看當前文件內容與Git版本數據庫中的差別:        **git diff readme.txt

**將當前工作目錄內的所有文件都一起添加到暫存區域:   **git add .

創建忽略文件列表:                   .gitignore

文件被直接提交到Git數據庫:              git commit -a -m "Modified again”

4 定義遠程的Git服務器

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@wls12c demo]$ git remote add server ssh://git@120.77.85.77:2121/opt/demo.git</pre>

5. 將文件提交到遠程Git服務器

[ 復制代碼

](javascript:void(0); "復制代碼")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@wls12c demo]$ git push -u server master
Counting objects: 3, done.
Writing objects: 100% (3/3), 262 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://git@120.77.85.77:2121/opt/demo.git

  • [new branch] master -> master
    Branch master set up to track remote branch master from server.</pre>

[ 復制代碼

](javascript:void(0); "復制代碼")

6. 移除數據

** 保留工作區的文件,刪除暫存區的文件: **git rm --cache test.java

從Git暫存區和工作目錄中一起刪除:   git rm -f test.java

刪除Git版本倉庫內的文件快照:    git rm test.java

7. 重命名文件

git mv 1.txt 2.txt

git commit -m "changed name"

8. 還原數據

[ 復制代碼

](javascript:void(0); "復制代碼")

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@wls12c demo]$ echo "Git is a version control system" >> readme.txt
[root@wls12c demo]$ git add .
[root@wls12c demo]$ git commit -m "test rollback" [master e34168a] test rollback 1 files changed, 1 insertions(+), 0 deletions(-)
[root@wls12c demo]$ git log --pretty=oneline
e34168afeff0e1b1462eb6a52db4bd207d384332 test rollback
2947448a1d50b8a2613f93c54db31db797e65a5c changed name
458eacab758f72ecb4f63524caa301b4c440d702 ADD 1.txt agin
7c1464fa93af1eed88eaa76b15a663bae84cb78a ADD 1.txt agin
361b54468b1d9e4cbd271ce2be196d556ee84556 ADD 1.txt
b548d3bd469cf5f183e9be9a3b2949f6361b5385 Clone the Git repository
[root@wls12c demo]$ git reset --hard 29474 HEAD is now at 2947448 changed name [root@wls12c demo]$ cat readme.txt
I successfully cloned the Git repository</pre>

[ 復制代碼

](javascript:void(0); "復制代碼")

用git reflog命令來查看所有的歷史記錄,這樣就可以看見還原以前的記錄了。

我們突然發現不應該寫一句話的,可以手工刪除(當內容比較多的時候會很麻煩),還可以將文件內容從暫存區中恢復或者版本庫中恢復:

<pre style="margin: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; font-family: "Courier New" !important; font-size: 12px !important;">[root@wls12c demo]$ echo "xxxxx" >>readme.txt
[root@wls12c demo]$ git checkout -- readme.txt
[root@wls12c demo]$ cat readme.txt
I successfully cloned the Git repository
Git is a version control system</pre>

checkou規則是如果暫存區中有該文件,則直接從暫存區恢復,如果暫存區沒有該文件,則將還原成最近一次文件提交時的快照。

** 9. 管理標簽**

打標簽 tag v1.0

git tag v1.1 -m "version 1.1 released" d316fb

查看所有的已有標簽:

git tag

查看此標簽的詳細信息:

git show v1.0

10. 創建分支

  創建分支:   git branch dev1.0

** 查看分支:   git branch**

切換分支:   git checkout dev1.0

  刪除分支:   **git branch -d ** dev1.0

  合并分支:   git merge dev1.0

總結

以上是生活随笔為你收集整理的GIT服务器搭建(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。