⑴ ubuntu有沒有Git的可視化操作界面啊,使用命令行操作很不方便啊
到軟體中心那裡搜一下吧,Git的可視化操作界面還是有的。比如:
gitweb (web interface)
qgit(Qt interface)
⑵ 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就提交的話,只會提交第一次的修改。命令詳解可查看「Linux命令大全」。
⑶ 我就想問一下,阿里雲Linux系統可視化如何弄
網上有很多面板工具,把他們安裝到自己的linux系統就行了。
推薦看一下這個http://vpszn.net/vpsapply/033105552751.html
⑷ 如何在Linux下使用Git
一種方法是直接用root執行 一種方法是看下git的執行許可權,是不是可以設成當前owner直接可以執行 還有一種方法是用當前用戶安裝git
⑸ 如何在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
⑹ 在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下來就可以了。
⑺ linux 怎麼git github
linux 怎麼git github
一、使用包管理器安裝GitGit已經被所有的主流Linux發行版所支持。所以安裝它最簡單的方法就是使用各個Linux發行版的包管理器。
1、Debian, Ubuntu, 或 Linux Mint
$ sudo apt-get install git
2、Fedora, CentOS 或 RHEL
$ sudo yum install git或$ sudo dnf install git
3、Arch Linux
$ sudo pacman -S git
4、OpenSUSE
$ sudo zypper install git
⑻ 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 伺服器時不會再提示上面的語句。
⑼ 45 個 Git 經典操作場景,專治不會合代碼-
git 對於大家應該都不太陌生,熟練使用git已經成為程序員的一項基本技能,盡管在工作中有諸如 Sourcetree 這樣牛X的客戶端工具,使得合並代碼變的很方便。但找工作面試和一些需彰顯個人實力的場景,仍然需要我們掌握足夠多的git命令。
下邊我們整理了45個日常用git合代碼的經典操作場景,基本覆蓋了工作中的需求。
如果你用 git commit -a 提交了一次變化(changes),而你又不確定到底這次提交了哪些內容。你就可以用下面的命令顯示當前 HEAD 上的最近一次的提交(commit):
或者
如果你的提交信息( commit message )寫錯了且這次提交(commit)還沒有推(push), 你可以通過下面的方法來修改提交信息( commit message ):
這會打開你的默認編輯器, 在這里你可以編輯信息. 另一方面, 你也可以用一條命令一次完成:
如果你已經推(push)了這次提交(commit), 你可以修改這次提交(commit)然後強推( force push ), 但是不推薦這么做。
如果這只是單個提交(commit),修改它:
如果你需要修改所有 歷史 , 參考 'git filter-branch'的指南頁.
通過下面的方法,從一個提交(commit)里移除一個文件:
這將非常有用,當你有一個開放的補丁( open patch ),你往上面提交了一個不必要的文件,你需要強推( force push )去更新這個遠程補丁。
如果你需要刪除推了的提交( pushed commits ),你可以使用下面的方法。可是,這會不可逆的改變你的 歷史 ,也會搞亂那些已經從該倉庫拉取(pulled)了的人的 歷史 。簡而言之,如果你不是很確定,千萬不要這么做。
如果你還沒有推到遠程, 把Git重置(reset)到你最後一次提交前的狀態就可以了(同時保存暫存的變化):
這只能在沒有推送之前有用. 如果你已經推了, 唯一安全能做的是 git revert SHAofBadCommit , 那會創建一個新的提交(commit)用於撤消前一個提交的所有變化(changes);或者, 如果你推的這個分支是rebase-safe的 (例如:其它開發者不會從這個分支拉), 只需要使用 git push -f 。
同樣的警告:不到萬不得已的時候不要這么做.
或者做一個 互動式rebase 刪除那些你想要刪除的提交(commit)里所對應的行。
注意, rebasing(見下面)和修正(amending)會用一個 新的提交(commit)代替舊的 , 所以如果之前你已經往遠程倉庫上推過一次修正前的提交(commit),那你現在就必須強推( force push ) ( -f )。注意 – 總是 確保你指明一個分支!
一般來說, 要避免強推 . 最好是創建和推(push)一個新的提交(commit),而不是強推一個修正後的提交。後者會使那些與該分支或該分支的子分支工作的開發者,在源 歷史 中產生沖突。
如果你意外的做了 git reset --hard , 你通常能找回你的提交(commit), 因為Git對每件事都會有日誌,且都會保存幾天。
你將會看到一個你過去提交(commit)的列表, 和一個重置的提交。選擇你想要回到的提交(commit)的SHA,再重置一次:
這樣就完成了。
一般來說, 如果你想暫存一個文件的一部分, 你可這樣做:
-p 簡寫。這會打開交互模式, 你將能夠用 s 選項來分隔提交(commit);然而, 如果這個文件是新的, 會沒有這個選擇, 添加一個新文件時, 這樣做:
然後, 你需要用 e 選項來手動選擇需要添加的行,執行 git diff --cached 將會顯示哪些行暫存了哪些行只是保存在本地了。
git add 會把整個文件加入到一個提交. git add -p 允許互動式的選擇你想要提交的部分.
多數情況下,你應該將所有的內容變為未暫存,然後再選擇你想要的內容進行commit。但假定你就是想要這么做,這里你可以創建一個臨時的commit來保存你已暫存的內容,然後暫存你的未暫存的內容並進行stash。然後reset最後一個commit將原本暫存的內容變為未暫存,最後stash pop回來。
注意1: 這里使用 pop 僅僅是因為想盡可能保持冪等。注意2: 假如你不加上 --index 你會把暫存的文件標記為為存儲。
如果你只是想重置源(origin)和你本地(local)之間的一些提交(commit),你可以:
重置某個特殊的文件, 你可以用文件名做為參數:
如果你想丟棄工作拷貝中的一部分內容,而不是全部。
簽出(checkout)不需要的內容,保留需要的。
另外一個方法是使用 stash , Stash所有要保留下的內容, 重置工作拷貝, 重新應用保留的部分。
或者, stash 你不需要的部分, 然後stash drop。
這是另外一種使用 git reflog 情況,找到在這次錯誤拉(pull) 之前HEAD的指向。
重置分支到你所需的提交(desired commit):
完成。
先確認你沒有推(push)你的內容到遠程。
git status 會顯示你領先(ahead)源(origin)多少個提交:
一種方法是:
在main下創建一個新分支,不切換到新分支,仍在main下:
把main分支重置到前一個提交:
HEAD^ 是 HEAD^1 的簡寫,你可以通過指定要設置的 HEAD 來進一步重置。
或者, 如果你不想使用 HEAD^ , 找到你想重置到的提交(commit)的hash( git log 能夠完成), 然後重置到這個hash。使用 git push 同步內容到遠程。
例如, main分支想重置到的提交的hash為 a13b85e :
簽出(checkout)剛才新建的分支繼續工作:
假設你正在做一個原型方案(原文為working spike (see note)), 有成百的內容,每個都工作得很好。現在, 你提交到了一個分支,保存工作內容:
當你想要把它放到一個分支里 (可能是 feature , 或者 develop ), 你關心是保持整個文件的完整,你想要一個大的提交分隔成比較小。
假設你有:
我去可以通過把內容拿到你的分支里,來解決這個問題:
這會把這個文件內容從分支 solution 拿到分支 develop 里來:
然後, 正常提交。
假設你有一個 main 分支, 執行 git log , 你看到你做過兩次提交:
讓我們用提交hash(commit hash)標記bug ( e3851e8 for #21, 5ea5173 for #14).
首先, 我們把 main 分支重置到正確的提交( a13b85e ):
現在, 我們對 bug #21 創建一個新的分支:
接著, 我們用 _cherry-pick_ 把對 bug #21 的提交放入當前分支。這意味著我們將應用(apply)這個提交(commit),僅僅這一個提交(commit),直接在HEAD上面。
這時候, 這里可能會產生沖突, 參見互動式 rebasing 章 沖突節 解決沖突.
再者, 我們為bug #14 創建一個新的分支, 也基於 main 分支
最後, 為 bug #14 執行 cherry-pick :
一旦你在github 上面合並(merge)了一個 pull request , 你就可以刪除你fork里被合並的分支。如果你不準備繼續在這個分支里工作, 刪除這個分支的本地拷貝會更干凈,使你不會陷入工作分支和一堆陳舊分支的混亂之中。
如果你定期推送到遠程, 多數情況下應該是安全的,但有些時候還是可能刪除了還沒有推到遠程的分支。讓我們先創建一個分支和一個新的文件:
添加文件並做一次提交
現在我們切回到主(main)分支,『不小心的』刪除 my-branch 分支
在這時候你應該想起了 reflog , 一個升級版的日誌,它存儲了倉庫(repo)裡面所有動作的 歷史 。
正如你所見,我們有一個來自刪除分支的提交hash(commit hash),接下來看看是否能恢復刪除了的分支。
看! 我們把刪除的文件找回來了。Git的 reflog 在rebasing出錯的時候也是同樣有用的。
刪除一個遠程分支:
你也可以:
刪除一個本地分支:
首先, 從遠程拉取(fetch) 所有分支:
假設你想要從遠程的 daves 分支簽出到本地的 daves
( --track 是 git checkout -b [branch] [remotename]/[branch] 的簡寫)
這樣就得到了一個 daves 分支的本地拷貝, 任何推過(pushed)的更新,遠程都能看到.
你可以合並(merge)或rebase了一個錯誤的分支, 或者完成不了一個進行中的rebase/merge。Git 在進行危險操作的時候會把原始的HEAD保存在一個叫ORIG_HEAD的變數里, 所以要把分支恢復到rebase/merge前的狀態是很容易的。
不幸的是,如果你想把這些變化(changes)反應到遠程分支上,你就必須得強推( force push )。是因你快進( Fast forward )了提交,改變了Git 歷史 , 遠程分支不會接受變化(changes),除非強推(force push)。
這就是許多人使用 merge 工作流, 而不是 rebasing 工作流的主要原因之一, 開發者的強推(force push)會使大的團隊陷入麻煩。使用時需要注意,一種安全使用 rebase 的方法是,不要把你的變化(changes)反映到遠程分支上, 而是按下面的做:
假設你的工作分支將會做對於 main 的pull-request。一般情況下你不關心提交(commit)的時間戳,只想組合 所有 提交(commit) 到一個單獨的裡面, 然後重置(reset)重提交(recommit)。確保主(main)分支是最新的和你的變化都已經提交了, 然後:
如果你想要更多的控制, 想要保留時間戳, 你需要做互動式rebase (interactive rebase):
如果沒有相對的其它分支, 你將不得不相對自己的 HEAD 進行 rebase。例如:你想組合最近的兩次提交(commit), 你將相對於 HEAD~2 進行rebase, 組合最近3次提交(commit), 相對於 HEAD~3 , 等等。
在你執行了互動式 rebase的命令(interactive rebase command)後, 你將在你的編輯器里看到類似下面的內容:
所有以 # 開頭的行都是注釋, 不會影響 rebase.
然後,你可以用任何上面命令列表的命令替換 pick , 你也可以通過刪除對應的行來刪除一個提交(commit)。
例如, 如果你想 單獨保留最舊(first)的提交(commit),組合所有剩下的到第二個裡面 , 你就應該編輯第二個提交(commit)後面的每個提交(commit) 前的單詞為 f :
如果你想組合這些提交(commit) 並重命名這個提交(commit) , 你應該在第二個提交(commit)旁邊添加一個 r ,或者更簡單的用 s 替代 f :
你可以在接下來彈出的文本提示框里重命名提交(commit)。
如果成功了, 你應該看到類似下面的內容:
--no-commit 執行合並(merge)但不自動提交, 給用戶在做提交前檢查和修改的機會。 no-ff 會為特性分支(feature branch)的存在過留下證據, 保持項目 歷史 一致。
有時候,在將數據推向上游之前,你有幾個正在進行的工作提交(commit)。這時候不希望把已經推(push)過的組合進來,因為其他人可能已經有提交(commit)引用它們了。
這會產生一次互動式的rebase(interactive rebase), 只會列出沒有推(push)的提交(commit), 在這個列表時進行reorder/fix/squash 都是安全的。
檢查一個分支上的所有提交(commit)是否都已經合並(merge)到了其它分支, 你應該在這些分支的head(或任何 commits)之間做一次diff:
這會告訴你在一個分支里有而另一個分支沒有的所有提交(commit), 和分支之間不共享的提交(commit)的列表。另一個做法可以是:
如果你看到的是這樣:
這意味著你rebase的分支和當前分支在同一個提交(commit)上, 或者 領先(ahead) 當前分支。你可以嘗試:
如果你不能成功的完成rebase, 你可能必須要解決沖突。
首先執行 git status 找出哪些文件有沖突:
在這個例子裡面, README.md 有沖突。打開這個文件找到類似下面的內容:
你需要解決新提交的代碼(示例里, 從中間 == 線到 new-commit 的地方)與 HEAD 之間不一樣的地方.
有時候這些合並非常復雜,你應該使用可視化的差異編輯器(visual diff editor):
在你解決完所有沖突和測試過後, git add 變化了的(changed)文件, 然後用 git rebase --continue 繼續rebase。
如果在解決完所有的沖突過後,得到了與提交前一樣的結果, 可以執行 git rebase --skip 。
任何時候你想結束整個rebase 過程,回來rebase前的分支狀態, 你可以做:
暫存你工作目錄下的所有改動
你可以使用 -u 來排除一些文件
假設你只想暫存某一個文件
假設你想暫存多個文件
這樣你可以在 list 時看到它
或
首先你可以查看你的 stash 記錄
然後你可以 apply 某個 stash
此處, 'n'是 stash 在棧中的位置,最上層的 stash 會是0
除此之外,也可以使用時間標記(假如你能記得的話)。
你需要手動create一個 stash commit , 然後使用 git stash store 。
如果已經克隆了:
如果你想恢復一個已刪除標簽(tag), 可以按照下面的步驟: 首先, 需要找到無法訪問的標簽(unreachable tag):
記下這個標簽(tag)的hash,然後用Git的 update-ref
這時你的標簽(tag)應該已經恢復了。
如果某人在 GitHub 上給你發了一個 pull request , 但是然後他刪除了他自己的原始 fork, 你將沒法克隆他們的提交(commit)或使用 git am 。在這種情況下, 最好手動的查看他們的提交(commit),並把它們拷貝到一個本地新分支,然後做提交。
做完提交後, 再修改作者,參見變更作者。然後, 應用變化, 再發起一個新的 pull request 。
在 OS X 和 Linux 下, 你的 Git的配置文件儲存在 ~/.gitconfig 。我在 [alias] 部分添加了一些快捷別名(和一些我容易拼寫錯誤的),如下:
你可能有一個倉庫需要授權,這時你可以緩存用戶名和密碼,而不用每次推/拉(push/pull)的時候都輸入,Credential helper能幫你。
你把事情搞砸了:你 重置(reset) 了一些東西, 或者你合並了錯誤的分支, 亦或你強推了後找不到你自己的提交(commit)了。有些時候, 你一直都做得很好, 但你想回到以前的某個狀態。
這就是 git reflog 的目的, reflog 記錄對分支頂端(the tip of a branch)的任何改變, 即使那個頂端沒有被任何分支或標簽引用。基本上, 每次HEAD的改變, 一條新的記錄就會增加到 reflog 。遺憾的是,這只對本地分支起作用,且它只跟蹤動作 (例如,不會跟蹤一個沒有被記錄的文件的任何改變)。
上面的reflog展示了從main分支簽出(checkout)到2.2 分支,然後再簽回。那裡,還有一個硬重置(hard reset)到一個較舊的提交。最新的動作出現在最上面以 HEAD@{0} 標識.
如果事實證明你不小心回移(move back)了提交(commit), reflog 會包含你不小心回移前main上指向的提交(0254ea7)。
然後使用 git reset 就可以把main改回到之前的commit,這提供了一個在 歷史 被意外更改情況下的安全網。
⑽ linux如何配置git
做前端的在日常工作中少不了和git打交道,那麼新安裝git之後使用webstorm進行項目上傳時有時會出現只能創建項目無法上傳文件的錯誤,那麼這種錯誤是怎麼形成的呢,原來是我們沒喲成功配置git。按照下面的方式去做就可以解決這個問題。
首先確保自己已經安裝了git,打開終端,運行:
查看當前git版本,如果沒有安裝運行:
sudo npm install git -g
進行git的安裝。
運行如下命令對git用戶的用戶名和郵箱進行配置。
之後再進行上傳發現問題已經解決。