㈠ linux下怎麼完成Git的配置
使用git 自從git-1.5.4 , 'git-xyz' 這種用法就不提倡了,而推薦 'git xyz' 風格。 git 的後續版本中將在 make install 時不再安裝 'git-xyz' 這些 hardlinks 。 當如果執行 git --exec-path 輸出的目錄中依然有 git-xyz 這些腳本,你還是可以把這個路徑加到 PATH 環境變數中, 這樣還能夠使用 git-xyz 形式的腳本。 config ------ 我的一些簡單的配置: $ git-config user.name "Jike Song" $ git-config user.email [email][email protected][/email] $ git-config core.editor vim $ git-config core.pager "less -N" $ git-config color.diff true // 顯示 diff 時色彩高亮 $ git-config alias.co checkout // 給 git checkout 取個別名,這樣只輸入 git co 即可 $ git-config sendemail.smtpserver /usr/bin/msmtp 注意,這會在當前 repository 目錄下的 .git/config 中寫入配置信息。 如果 git-config 加了 --global 選項,配置信息就會寫入到 ~/.gitconfig 文件中。 因為你可能用不同的身份參與不同的項目,而多個 項目都用 git 管理,所以建議不用 --global 配置。 $ git-val -l // 列出 git 變數 init ---- $ git-init-db // 創建一個 .git/ 目錄,初始化一個空的 git 倉庫 //這個目錄在git-clone時也會創建。也就是說clone時會自動初始化git //倉庫里需要的東西 clone ----- $ git-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git [dir name] [dir name] 是你想讓這個倉庫叫什麼名字。 如果不指定,就會等同於目標倉庫的名字。 注意,這種 git server 形式的 repository ,都有一個 filename.git 文件; 而對於 *.git 的操作,也可以 針對.git 所在的目錄: $ mkdir tmp/ $ cd tmp/ $ git-clone ~/Sources/linux-2.6 或者通過 ssh : $ git-clone [email][email protected][/email]:/home/arc/Sources/linux-2.6 此時當前目錄下有一個 .git/ 目錄 . 以下我們都在 linux-2.6/ 下演示: 使用git 自從git-1.5.4 , 'git-xyz' 這種用法就不提倡了,而推薦 'git xyz' 風格。 git 的後續版本中將在 make install 時不再安裝 'git-xyz' 這些 hardlinks 。 當如果執行 git --exec-path 輸出的目錄中依然有 git-xyz 這些腳本,你還是可
㈡ 如何在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的方法了。
㈢ 怎樣用git獲取指定的android Linux Kernel
進入kernel/common,這里不需要用到repo,直接用Git即可。
git clone git://android.git.kernel.org/kernel/common.git
這可能需要不少的時間,因為它會把整個Linux Kernel的代碼復制下來。
如果需要某個branch的代碼,用git checkout即可。比如我們剛剛拿了kernel/common.git的代碼,那就先進入到common目錄,然後用下面的命令:
git checkout origin/android-goldfish-2.6.27 -b goldfish
這樣我們就在本地建立了一個名為goldfish的android-goldfish-2.6.27分支,代碼則已經與android- goldgish-2.6.27同步。我們可以通過git branch來列出本地的所有分支。
root@localhost mydroid]#git clone git://android.git.kernel.org/kernel/common.git kernel
//把伺服器上的所有kernel都下載到本地kernel目錄,想只下載一個版本的kernel是不可能的因為伺服器上只有一個包含kernel的common.git文件,而沒有單個版本kernel的.git文件
[root@localhost mydroid]#cd kernel
[root@localhost kernel]# ls
arch CREDITS drivers include Kbuild MAINTAINERS net samples sound
block crypto firmware init kernel Makefile README scripts usr
COPYING Documentation fs ipc lib mm REPORTING-BUGS security virt
[root@localhost kernel]# git branch -a
* android-2.6.27
diff
remotes/origin/HEAD -> origin/android-2.6.27
remotes/origin/archive/android-2.6.25
remotes/origin/archive/android-2.6.27
remotes/origin/archive/android-2.6.29
remotes/origin/archive/android-2.6.32
㈣ 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
$sudozypperinstallgit
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
㈤ 如何通過Git在本地建立Linux Kernel的版本庫鏡像
git clone --bare git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
當然,該命令只會在本地建立版本庫鏡像。那麼如何保持和Linux Kernel版本庫的更新呢?
建議參考以下項目,使用git-mirror進行定時同步更新版本庫。
https://github.com/ndechesne/git-mirror
㈥ 使用git版本控制工具一般都是下到最新的linux內核,如何使用git下載舊的linux內核
git 獲取的可不僅僅是「最新」的代碼,還包括歷史代碼。 你可以用 git log, git tag, git branch -a 等命令查看內核代碼的歷史信息, 標簽信息(不同的正式版本應該都打有相應標簽),分支信息等。 可以用 git checkout xxx 的命令來切換到 xxx 版本。
顯然,你應該先簡單學習一下git的用法……
㈦ linux系統下怎麼搭建git伺服器
我們很多人知道Git可能是從Github開始的。因為Github是如此流行,幾乎所有寫代碼的人都知道它,以至於一提到Git就以為是Github,其實兩者並沒有多少關系,只是名字類似而已(這有點像Java和JavaScript)。
152855_dxab_940492.png
實際上,Git是一個分布式版本控制軟體,原來是Linux內核開發者Linus Torvalds為了更好地管理Linux內核開發而創立的。雖然Git比SVN優秀很多,但它們最初被設計出來的想法是一致的,那就是版本控制。而Github卻是一個網站,充當Git公共伺服器的作用,只要擁有Github賬號的人都可以把自己的項目託管在那裡,如果你捨不得花些錢,你的項目是強制公開的。所以,Github就是一個通過Git協議為眾多開發者提供代碼託管的地方,同時它提供了很多特性,第一次使得大家可以這么公開地討論起各自的項目。
153043_4iw8_940492.png
上面之所以說這么多,是因為今天要講的Gitosis有點類似Github的功能。什麼意思呢?就是我們可以在自己的伺服器上安裝Gitosis,那麼這台伺服器就可以向Github一樣對外提供代碼託管服務了,這對於很多不願意把自己的代碼公諸於世的公司來說最好不過了。
這里以CentOS充當伺服器為例給大家講解一下Gitosis的安裝和配置。
1.編譯安裝git
yum install git
2.安裝gitosis
$ yum install python python-setuptools
$ git clone git://github.com/res0nat0r/gitosis.git
$ cd gitosis
$ python setup.py install
網址:https://github.com/res0nat0r/gitosis
3.在開發機器上生成公共密鑰(用來初始化gitosis)
$ ssh-keygen -t rsa #不需要密碼,一路回車就行(在本地操作)
$ scp ~/.ssh/id_rsa.pub root@xxx:/tmp/ # 上傳你的ssh public key到伺服器
4.初始化gitosis[伺服器端]
$ adser git # 新增一個git用戶(先添加用戶組 groupadd git)
$ su git # 切換倒git用戶下
$ gitosis-init < /tmp/id_rsa.pub # id_rsa.pub是剛剛傳過來的,注意放在/tmp目錄主要是因為此目錄許可權所有人都有定許可權的
$ rm /tmp/id_rsa.pub # id_rsa.pub已經無用,可刪除.
5.獲取並配置gitosis-admin [客戶端]
$ git clone git@xxx:gitosis-admin.git # 切換到root用戶並在本地執行,獲取gitosis管理項目,將會產生一個gitosis-admin的目錄,裡面有配置文件gitosis.conf和一個 keydir 的目錄,keydir目錄主要存放git用戶名
$ vi gitosis-admin/gitosis.conf # 編輯gitosis-admin配置文件
如果無法git clone的話,可以使用git clone git@xxx:/home/git/repositories/gitosis-admin.git
# 在gitosis.conf底部增加
[group 組名]
writable = 項目名
members = 用戶 # 這里的用戶名字 要和 keydir下的文件名字相一致
# VI下按ZZ(大寫)兩次會執行自動保存並退出,完成後執行
$ cd gitosis-admin
$ git add .
$ git commit -a -m 「xxx xx」 # 要記住的是,如果每次添加新文件必須執行git add .,或者git add filename,如果沒有新加文件,只是進行修改的話就可以執行此句。
# 修改了文件以後一定要PUSH到伺服器,否則不會生效。
$ git push
如果在git push的時候,遇到錯誤「ddress 192.168.0.77 maps to bogon, but this does not map back to the address – POSSIBLE BREAK-IN ATTEMPT!」,解決為修改/etc/hosts文件,將ip地址與主機名對應關系寫進去就可以了。
注意:這里我們並沒有進行任何的修改的,現在只有一個管理git的項目。下面的為新添加項目的配置,大家經常用到的也就是下面的操作的。
新建項目
到此步就算完成gitosis的初始化了。接下來的是新建一個新項目到伺服器的操作,如第5步中配置gitosis.conf文件添加的是
[group project1] # 組名稱
writable = project1 # 項目名稱
members = xxx # 用戶名xxx一定要與客戶端使用的用戶名完全一樣,否則無許可權操作
提交修改並更新到git server服務端
$ git commit -a -m 「添加新項目project1,新項目的目錄是project1,該項目的成員是xxx「 # 「」里的內容自定
$ git push
將新創建的項目提交到git server 上進行登記。以便客戶可以操作新項目.
# 在客戶端創建項目目錄(客戶端,當前用戶為 XXX )
現在回到開發者客戶端,上面創建了一個新項目project1並提交到了git server 。我們這里就創建此項目的信息.注意 項目名稱 project1要與gitosis.conf文件配置一致,
$ mkdir /home/用戶/project1
$ cd /home/用戶/project1
$ git init
$ git add . # 新增文件 留意後面有一個點
$ git commit -a -m 「初始化項目project1″
# 然後就到把這個項目放到git server伺服器上去.
$ git remote add origin git@xxx:project1.git # xxx為伺服器地址
$ git push origin master
# 也可以把上面的兩步合成一步
$ git push git@xxx:project1.git master
說明:如果在執行 git push origin master 的時候,提示以下錯誤:
error: src refspec master does not match any.
error: failed to push some refs to 『[email protected]:pro2.git』
這是由於項目為空的原因,我們在項目目錄里新創建一個文件。經過->add -> commit -> push 就可以解決了
$ touch a.txt
$ git add a.txt
$ git commit -a -m 『add a.txt』
$ git push
————————————————————————————————
如果在git clone的時候遇到「
error: cannot run ssh: No such file or directory – cygwin git
」錯誤,則表示本機沒有安裝ssh命令。安裝方法請參考:http://blog.haohtml.com/archives/13313
有時候我們要更換電腦來重新開發項目。這個時候,只需要將id_rsa私鑰放在home目錄里的.ssh目錄里就可以了。
㈧ Linux內核有多大,不同Linux版本內核有什麼差別呢
根據版本的不同,內核大小也不同,新版本為幾百M。
1、發行版的不同,主要是對於版本的選擇,穩定性的測試,還有錯誤修正補丁都會讓每個發行版有自己特殊的內核。
2、官方內核的不同,這個區別很好說,官方的開發是基於 git 版本控制的,去看兩個 git 版本就知道了。一般是硬體支持,還有新的功能演算法,還有驅動增減,錯誤修補什麼的。
Linux的內核版本編號有點像如下的樣子:
2.6.32-642.el6.x86_64
主版本.次版本。發布版本-修改版本。
雖然編號就是如上的方式來編寫,不過依據Linux內核的發展歷程,內核版本的定義有點不太相同。
奇數、偶數版本分類:
在2.6x版本以前,托瓦斯將內核的發展方向分為兩類,並根據這兩類內核的發展分別給予不同的內核編號,那就是:
主、次版本為奇數:開發中版本。
如2.5.xx,這種內核版本主要用於測試與發展新功能,所以通常這種版本僅有內核開發工程師會使用。如果有新增的內核程序代碼,會加到這種版本當中,等到很多工程師測試沒問題後,才加入下一版本的穩定內核中;
主、次版本為偶數:穩定版本。
如2.6.xx,等到內核功能發展成熟後會加到這類版本中,主要用在一般家庭計算機以及企業版本中,重點在於提供一個用戶相對穩定的Linux操作環境平台。
至於發布版本則是在主、次版本架構不變的情況下,新增的功能累積到一定程度後新發布的內核版本。而由於Linux 的內核是使用CPL的授權,因此大家都能夠進行內核程序代碼的修改。
因此,如果有針對一個版本的內核修改過的部分程序代碼,那麼這個被修改過的新內核版本就可以加上所謂的修改版本。
Linux內核版本與Linux發行版本。
Linux內核版本與發行版本的版本並不相同,因為所謂的Linux版本指的應該是內核版本,而目前最新的內核版本應該是4.7.2(2016/08)才對,並不會有7.x的版本出現。
(8)linux內核git擴展閱讀:
Linux內核的任務:
1、從技術層面講,內核是硬體與軟體之間的一個中間層。作用是將應用層序的請求傳遞給硬體,並充當底層驅動程序,對系統中的各種設備和組件進行定址。
2、從應用程序的層面講,應用程序與硬體沒有聯系,只與內核有聯系,內核是應用程序知道的層次中的最底層。在實際工作中內核抽象了相關細節。
3、內核是一個資源管理程序。負責將可用的共享資源(CPU時間、磁碟空間、網路連接等)分配得到各個系統進程。
4、內核就像一個庫,提供了一組面向系統的命令。系統調用對於應用程序來說,就像調用普通函數一樣。
㈨ 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 伺服器時不會再提示上面的語句。