1. 如何在linux下使用Git
Git是一款開源分布式版本控制系統,能夠幫助Linux管理內核開發,那麼Linux要如何使用Git,下面就是Linux使用Git的方法:
*初始化git倉庫,使用git init命令
*添加文件到git倉庫分兩步:
1、使用git add filename ;可分多次使用,添加多個文件到暫存區
2、使用git commit -m 「說明」 ;完成提交到分支
*查看工作區狀態,使用git status 命令;如果提示有修改可使用git diff filename 查看修改內容
*HEAD指向當前版本,HEAD^表示上一個版本,HEAD^^上上一個版本……HEAD~100指向之前第100個版本。
*回退版本:使用git log查看提交歷史;使用git log --pretty=oneline 精簡顯示
使用git reset --hard commit_id 回退到版本號為commit_id的版本
*回退版本之後如果想再看改回來,可以使用git reflog 查看歷史命令,找出想改回的版本號,再使用git reset hard commit_id 返回即可。
*注意:git跟蹤並管理的是修改,而不是文件,如果一個文件修改並add之後,再次修改,如果不再次add就提交的話,只會提交第一次的修改。
*撤銷修改:
1、如果文件還在工作區,即沒有add也沒有commit,則使用git checkout -- filename 還原到伺服器版即可;
2、如果已經add到暫存區,首先使用git reset HEAD filename從暫存區取回工作區,再按照1進行操作即可;
3、如果已經提交到版本庫,則按照版本回退的方式進行修改即可;
4、如果已經push到遠程倉庫,就麻煩了
*刪除使用以下命令:
1、git rm filename 從工作區刪除
2、git commit -m 」說明「 更新分支中文件進行刪除
將在工作區的文件刪除之後,可以使用git checkout -- filename 從分支中取回,但是只能恢復文件到最新版本,最後一次提交之後的修改則不能恢復。
*分支:
1、創建分支
git checkout -b branchname 創建並切換到改分區,相當於一下兩個命令:
git branch branchname 創建分支
git checkout branchname 切換到分區
2、查看當前指向的分支:git branch 會列出所有分支,當前指向的分支之前多了個*
3、切換分支就是git checkout branchname
4、合並分支:git merge branchname 合並branchname到當前分支
5、刪除分支:git branch -d branchname 刪除branchname分支
注意:創建、合並、刪除分支都非常快,git鼓勵使用分支完成某個任務,合並後刪除分支,和直接在master分支上進行工作是一樣的效果,但是過程更加安全; 這些之所以快是因為在這些過程中我們只是修改了指向分支的指針,如創建一個branch就是創建了一個指向分支的指針,然後修改HEAD指向該指針;即HEAD指向分支,分支就是提交。
*沖突解決:
git無法自動合並分支時,就必須首先解決沖突;解決沖突之後,再提交,即完成了合並
使用git log --graph 可以查看分支合並圖。
*保存工作現場 git stash 保存之後就可以進行其他工作 而不影響上次的修改
恢復工作現場:
1、git stash apply 恢復時並不刪除stash中內容
2、git stash pop 恢復時會刪除stash中的內容
*遠程庫信息產看使用git remote (-v)加上-v顯示信息更加詳細
*分支推送到遠程庫:即將所有本地的提交推送到遠程庫
git push origin(遠程庫名) master (要推送的分支)
*抓取分支:git pull ; git clone
*協作模式:
1、使用git push origin branchname 推送自己的修改
2、如果推送失敗,因為遠程分支比本地更新,先使用git pull 合並
3、如果合並有沖突,解決沖突,在本地提交
4、再推送
注意:如果使用git pull 合並時提示 」no tracking information「說明本地分支沒有和遠程分支建立鏈接關系,使用以下指令建立關系:git branch --set -upstream branch origin/branchname
*在本地創建與遠程對應的分支:git branch -b branchname origin/branchname 本地與遠程分支的名稱最好一致
*創建標簽
1、打標簽git tag name 默認標簽打在最新提交的commit上,如果想打在其他版本上,找到commit_id即可
2、顯示標簽:git log -pretty=oneline --abbrev -commit
git tag tag_name commit_id
3、查看標簽:git tag 顯示所有標簽
4、查看標簽信息:git show tag_name
5、創建帶有說明的標簽: git tag -a tag_name -m 」信息「;-a表示標簽名,-m指定說明文字
*操作標簽:git tag -d tag_name 刪除標簽
推送標簽到遠程庫:git push origin tag_name
一次推送所有標簽到遠程庫:git push origin --tag
上面就是Linux使用Git的方法了。
2. 如何在 Linux 上安裝 git 服務
1、yum方式安裝
# yum -y install git
如果提示系統提示沒有找到git包,可以採用下面的方式
2、下載Git源碼包
官網:http://git-scm.com/
$ tar -xjvf git-1.7.4.1.tar.bz2
$ cd git-1.7.4.1/
$ make prefix=/usr/local all
$ make prefix=/usr/local install
3. 如何在linux centos下安裝git
1.首先下載git源碼 自己度娘搜索下載即可。
2.xz文件解壓
1
2
xz -d git-2014-08-20.tar.xz
tar -xvf git-2014-08-20.tar
3.安裝git
1
2
3
4
5
cd git-2014-08-20/
autoconf
./configure --prefix=/usr/local/git/
make
make install
如果make的時候報錯:/bin/sh: msgfmt: command not found
則需要:
yum install gettext-devel
4.將git加到環境變數中
1
vim /etc/profile
1
2
export GIT_HOME=/usr/local/git/
export PATH=$PATH:$GIT_HOME/bin
這樣就可以直接運行git命令了。
4. linux搭建git遠程倉庫
1. linux和windows端分別安裝git,其中linux中可以用yum安裝
[root@node0~]#yum install git
git的默認安裝路徑在/usr/libexec/git-core
[root@node0 git-core]#cd /usr/libexec/git-core
[root@node0 git-core]#git --version
git version 1.7.1
2.設置linux端git的用戶名和密碼
[root@node0 git-core]# groupadd git
[root@node0 git-core]# useradd wang -g git
[root@node0 git-core]# passwd wang
New password:
3.在伺服器端創建遠程倉庫
[root@node0 ~]# mkdir -p /mnt/gitrep/wjf
[root@node0 ~]# cd /mnt/gitrep/wjf/
[root@node0 wjf]# git init
Initialized empty Git repository in /mnt/gitrep/wjf/.git/
把倉庫所屬用戶改為wang(git的用戶名)
[root@node0 wjf]# chown -R wang:git .git/
註:chown將指定文件的擁有者改為指定的用戶或組 -R處理指定目錄以及其子目錄下的所有文件
4.在windows客戶端克隆倉庫
$ git clone [email protected]:/mnt/gitrep/wjf/.git
Cloning into 'wjf'...
The authenticity of host '192.168.111.60 (192.168.111.60)' can't be established.
RSA key fingerprint is SHA256:MgWCWF************************1m2tI.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.111.60' (RSA) to the list of known hosts.
[email protected]'s password:
第一次連接遠程倉庫,出現黑體部分,這是因為Git使用SSH連接,而SSH連接在第一次驗證GitHub伺服器的Key時,需要你確認GitHub的Key的指紋信息是否真的來自GitHub的伺服器,鍵入yes,然後輸入遠程倉庫的密碼就可以了。
5.實際中也通常通過設置公鑰的方式來連接遠程倉庫,這樣就不用每次連接都需要密碼了。
設置公鑰:
1.在windows客戶端的gitbash中生成用戶私鑰和公鑰
$ ssh-keygen -t rsa -C "[email protected]"
在c盤用戶路徑下的/.ssh文件夾下會生成私鑰id_rsa和公鑰id_rsa.pub
2.linux端
首先 Git伺服器打開RSA認證,即,修改/etc/ssh/sshd_config,將其中的以下三項打開
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
然後,將客戶端生成的公鑰給到伺服器端
即,將公鑰給到 home/wang(git的用戶名)/.ssh/authorized_keys
[root@node0 ~]# cd /home/wang
[root@node0 wang]# mkdir .ssh
[root@node0 wang]# chmod 777 .ssh
[root@node0 wang]# touch .ssh/authorized_keys
在windows客戶端的gitbash中 執行:
$ ssh [email protected] 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub
然後在linux端:
[root@node0 wang]# chmod 600 .ssh/authorized_keys
[root@node0 wang]# chmod 700 .ssh
[root@node0 wang]# chown wang:git .ssh
[root@node0 wang]# chown wang:git .ssh/authorized_keys
至此,以後再連接遠程倉庫就不需要密碼了。
若仍需要密碼,可以查看ssh連接日誌/var/log/secure:
常見連接失敗原因:Authentication refused: bad ownership or modes for directory /home/wang/.ssh
這時需要檢查該目錄的所屬用戶和讀寫許可權等級是否符合要求。公鑰以及.ssh文件的許可權應該屬於git的用戶和用戶組,讀寫許可權等級.ssh 700,authorized_keys 600.
5. 如何在linux centos下安裝git
如果yum install git可以直接安裝的可以不通過源碼編譯安裝。
源碼安裝步驟如下
1.首先下載git源碼
地址:http://codemonkey.org.uk/projects/git-snapshots/git/
比如地址:http://codemonkey.org.uk/projects/git-snapshots/git/git-2014-08-20.tar.xz
2.xz文件解壓
1 xz -d git-2014-08-20.tar.xz
2
3 tar -xvf git-2014-08-20.tar
3.安裝git
1 cd git-2014-08-20/
2
3 autoconf
4
5 ./configure --prefix=/usr/local/git/
6
7 make
8
9 make install
如果make的時候報錯:/bin/sh: msgfmt: command not found
則需要:
1 yum install gettext-devel
4.將git加到環境變數中
vim /etc/profile
1 export GIT_HOME=/usr/local/git/
2 export PATH=$PATH:$GIT_HOME/bin
這樣就可以直接運行git命令了。
6. 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 伺服器時不會再提示上面的語句。