Ⅰ linux 怎麼查看已經安裝git
1、yum方式安裝 # yum -y install git 如果提示系統提示沒有找到git包,可以採用下面的方式 。
2、如果沒有,可以到官網下載.gz包。
Ⅱ Git工作流程和常用命令分享
git是一個分布式版本控制軟體,最初由林納斯·托瓦茲創作,於2005年以GPL發布。最初目的是為更好地管理Linux內核開發而設計。林納斯·托瓦茲在編寫第一個版本時就使用了「git」這個名稱, 他將工具描述為「愚蠢的內容跟蹤器」。
[圖片上傳失敗...(image-c23291-1619063471664)]
四個專有名詞:
Workspace:工作區
Index / Stage:暫存區
Repository:倉庫區(或本地倉庫)
Remote:遠程倉庫
打開本地生成的.git隱藏文件
創建新項目gittest
創建新文件test.txt
git add <file>
git status顯示有變更的文件
git restore <file> 撤迴文件修改內容
git commit –m 「注釋」
修改內容-> 執行git diff工作區和本地倉庫的差異
git log顯示當前分支的版本歷史
git reset --hard HEAD^ 當前版本回退到上一個版本
git reset --hard HEAD^ ^ 當前版本回退到上上一個版本
git reset --hard HEAD~100 回退到前100個版本
恢復已經刪除的版本
git reflog 展示所有的提交記錄
git reset --hard <版本號> 回退到指定版本
git push origin master 將本地master分支推送到遠程master分支,相當於創建遠程分支
git checkout -b dev = git branch dev + git checkout dev 創建並切換分支
git branch 不帶參數,會列出所有本地的分支;帶參數表示創建分支
git branch –d name 刪除本地分支(-D表示強制刪除)
git branch –r 不帶參數,會列出所有遠程的分支
git branch --set-upstream-to=origin/<branch本地> 本地和遠程分支關聯
git push origin –delete <branch> 刪除遠程分支
git merge release用於合並指定分支到當前分支上
註:Fast-forward表示的合並是「快進模式」,也就是直接把master指向dev的當前提交,所以合並速度非常快。在這種模式下,刪除分支後,會丟掉分支日誌信息。可以使用帶參數 --no-ff來禁用」Fast forward」模式。
git merge --no-ff -m 「注釋」dev
git checkout release 切換release分支
vim test.txt 修改某條內容
git commit test.txt -m 「release修改某條內容」
git checkout master 切換master分支
vim test.txt 修改某條同release內容
git commit test.txt -m 「master修改某條內容」
git merge release 顯示沖突
git status 顯示沖突提示
Git用<<<<<<<,=======,>>>>>>>標記出不同分支的內容,其中>>>>release 是指release上修改的內容
vim test.txt 修改內容
git add test.txt
git commit -a -m 「fix conflict」
當前分支有沒有提交但也不合適現在就提交的內容,Git提供了暫儲功能stash
git checkout release
vim test.txt 修改test.txt內容
git checkout develop 此時會提示Aborting
git status 查看當前狀態
Git stash list 查看所有暫儲列表
git stash apply恢復,恢復後stash內容並不刪除,你需要使用命令git stash drop來刪除;
另一種方式是使用git stash pop,恢復的同時把stash內容也刪除了
創建Git Tag並推送遠程伺服器
git tag -a V1.0.0 –m「注釋」 //創建TAG
git push origin V1.0.0 //推送到遠程伺服器
git push origin --tag //提交所有tag至伺服器
git tag -d V1.0.0 //刪除本地標簽
git push origin --delete tag <tagname> //刪除遠程標簽
HEAD,它始終指向當前所處分支的最新的提交點。你所處的分支變化了,或者產生了新的提交點,HEAD就會跟著改變
add相關命令很簡單,主要實現將工作區修改的內容提交到暫存區,交由git管理。
git add .添加當前目錄的所有文件到暫存區
git add 添加指定目錄到暫存區,包括子目錄
git add 添加指定文件到暫存區
commit相關命令也很簡單,主要實現將暫存區的內容提交到本地倉庫,並使得當前分支的HEAD向後移動一個提交點。
git commit -m 提交暫存區到本地倉庫,message代表說明信息
git commit --amend -m 使用一次新的commit,替代上一次提交
上傳本地倉庫分支到遠程倉庫分支,實現同步。
git push 上傳本地指定分支到遠程倉庫
git push --force強行推送當前分支到遠程倉庫,即使有沖突
git push --all推送所有分支到遠程倉庫
關於分支,大概有展示分支,切換分支,創建分支,刪除分支這四種操作。
git branch列出所有本地分支
git branch -r列出所有遠程分支
git branch -a列出所有本地分支和遠程分支
git branch 新建一個分支,但依然停留在當前分支
git checkout -b 新建一個分支,並切換到該分支
git checkout 切換到指定分支,並更新工作區
git branch -d 刪除分支
git push origin --delete 刪除遠程分支
關於分支的操作雖然比較多,但都比較簡單好記
merge命令把不同的分支合並起來。在實際開放中,我們可能從master分支中切出一個分支,然後進行開發完成需求,中間經過R3,R4,R5的commit記錄,最後開發完成需要合入master中,這便用到了merge。
git merge 合並指定分支到當前分支
註:如果在merge之後,出現conflict,主要是因為兩個用戶修改了同一文件的同一塊區域。需要針對沖突情況,手動解除沖突。
rebase又稱為衍合,是合並的另外一種選擇。
在開始階段,我們處於new分支上,執行git rebase dev,那麼new分支上新的commit都在dev分支上重演一遍,最後checkout切換回到new分支。這一點與merge是一樣的,合並前後所處的分支並沒有改變。
git rebase dev,通俗的解釋就是new分支想站在dev的肩膀上繼續下去。
rebase操作不會生成新的節點,是將兩個分支融合成一個線性的提交。
rebase也需要手動解決沖突。
1.如果你想要一個干凈的,沒有merge commit的線性歷史樹,那麼你應該選擇git rebase
2.如果你想保留完整的歷史記錄,並且想要避免重寫commit history的風險,你應該選擇使用git merge
reset命令把當前分支指向另一個位置,並且相應的變動工作區和暫存區。
git reset —soft 只改變提交點,暫存區和工作目錄的內容都不改變
git reset —mixed 改變提交點,同時改變暫存區的內容
git reset —hard 暫存區、工作區的內容都會被修改到與提交點完全一致的狀態
git revert用一個新提交來消除一個歷史提交所做的任何修改。
在回滾這一操作上看,效果差不多。git revert是用一次新的commit來回滾之前的commit,git reset是直接刪除指定的commit。
在 Git工作區的根目錄創建一個特殊的.gitignore文件。
在.gitignore文件中,添加需要忽略的文件。
git rm -r --cached . //將倉庫中的index遞歸刪除
git add . //重新添加倉庫索引
git commit -m 「update git.ignore」 //提交
git branch --set-upstream-to=origin/<branch> <branch> //重現將本地倉庫和遠程倉庫關聯
最後,如果此篇博文對你有所幫助,別忘了點個贊喲~
Ⅲ 為什麼Linux上查看git版本會提示-bash: No such file or directory
你這路徑不對啊 圖的上路徑應該是/usr/local/bin 命令提示符的時/usr/bin
你創建一個軟鏈接過去
Ⅳ 有沒有人知道怎麼在windows上使用git 或者在linux商使用git
1.查看Linux系統伺服器系統版本
ifconfig
2在伺服器上安裝git及做些操作
- 執行命令
`
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
`
- 同時下載git-1.8.2.2.tar.gz文件,然後將其`mv` 到`/usr/local/src`目錄。[git-1.8.2.2.tar.gz安裝包下載地址][1]
```
cd /usr/local/src
sudo tar -zvxf git-1.8.2.2.tar.gz
cd git-1.8.2.2
sudo make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install
```
- 增加軟連接
```
sudo ln -s /usr/local/git/bin/* /usr/bin/
git --version #如果能顯示版本號,即表示成功`
```
3.在伺服器安裝gitosis
```
sudo yum install python python-setuptools
cd /usr/local/src
git clone git://github.com/res0nat0r/gitosis.git
cd gitosis
python setup.py install
#顯示Finished processing dependencies for gitosis==0.2即表示成功
```
4.在開發機上,生產密鑰並上傳到伺服器上
```
ssh-keygen -t rsa #一路回車,不需要設置密碼
#上傳公鑰到伺服器(默認SSH埠22)
scp ~/.ssh/id_rsa.pub [email protected]:/tmp
```
或編輯`/etc/hosts`文件,在`/etc/hosts`文件里添加如下文本:
```
# local git server
192.168.100.202 zgit
```
然後再上傳自己的公鑰到伺服器
```
scp ~/.ssh/id_rsa.pub tailin@zgit:/tmp/
# 登錄到git伺服器
ls /tmp/id_rsa.pub #顯示已經上傳的密鑰
```
5.伺服器上生成git用戶,使用git用戶並初始化`gitosis`
```
# 創建git版本管理用戶 git
sudo useradd -c 'git version manage' -m -d /home/git -s bin/bash git
# 更改git用戶的密碼
sudo passwd git
# su 到git用戶
su - git
gitosis-init < /tmp/id_rsa.pub
#顯示以下信息即表示成功
#Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
#Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
#刪除密鑰
rm -rf /tmp/id_rsa.pub
```
6.在個人開發機上導出項目管理
```
mkdir -p /repo
cd /repo
git clone git@zgit:gitosis-admin.git
```
7.在個人開發機增加及設置管理項目
```
cd /repo/gitosis-admin
# 查看git伺服器已經上傳密鑰
ls keydir
cat keydir/[email protected]
#[email protected]為已經上傳的開發機生成的公密
#顯示密鑰 最後的字元串為 密鑰用戶名 這里為 ltl@jackliu-ThinkPad
vim gitosis.conf
#在文件尾增加以下內容
[group test-git] # 具有寫許可權的組名稱
writable = test-git # 該組可寫的項目名稱
members = ltl@jackliu-ThinkPad [email protected] #該組的成員(密鑰用戶名) 多個用戶協同開發時,以空格分隔
# 如果要增加只讀的組 參考如下
# [group test-git-readnoly] # 具有都許可權的組名稱
# readonly = test-git # 該組只讀的項目名稱
# members = ltl@jackliu-ThinkPad # 該組的成員
#提交修改
git add .
git commit -a -m "add test-git repo"
git push
```
8.在個人開發機上初始,增加及使用項目test-git
```
cd ~/repo
mkdir test-git
cd test-git
git init
touch readme
git add .
git commit -a -m "init test-git"
git remote add origin git@zgit:test-git.git
git push origin master
```
9.增加協同開發者的公鑰key到git伺服器
- 執行`cd repo/gitosis-admin/keydir`切換目錄
- 把協同開發者的id_rsa.pub 文件里的數據 拷貝到 對應的開發者的`密鑰用戶名.pub`文件。如把密鑰用戶名 [email protected] 的 id_rsa.pub 文件中文本 粘貼到 [email protected] 文件里,並保存
- 然後將添加數據後的目錄更新到git伺服器
```
Ⅳ Linux查看版本命令問題
1./etc/issue 和 /etc/redhat-release都是系統安裝時默認的發行版本信息,通常安裝好系統後文件內容不會發生變化。看你的貼圖該linux安裝的發行版是RHEL6.1。
2.lsb_release -a :FSG(Free Standards Group)組織開發的LSB (Linux Standard Base)標準的一個命令,用來查看linux兼容性的發行版信息。看你的貼圖該linux發行版信息是RHEL6.2。3./proc/version 和 uname -a 顯示的內容相同,顯示linux內核版本號。
關於lsb_release -a和/etc/issue顯示的發行版本號不同,原因只有一個:內核升級了。
原因是:/etc/issue中的"Final」和lsb_release -a中的"NahantUpdate3"不相同。
以下是我的伺服器的相關信息,看一下就一目瞭然了!
[root@master ~]# cat /etc/issue
Red Hat Enterprise Linux AS release 4 (Nahant Update 3)
Kernel \r on an \m
[root@master ~]# lsb_release -a
LSB Version: :core-3.0-amd64:core-3.0-ia32:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 3)
Release: 4
Codename: NahantUpdate3
[root@master ~]# cat /proc/version
Linux version 2.6.9-34.ELsmp ([email protected]) (gcc version 3.4.5 20051201 (Red Hat 3.4.5-2)) #1 SMP Fri Feb 24 16:56:28 EST 2006