導航:首頁 > 程序命令 > git命令自動補全

git命令自動補全

發布時間:2023-08-02 15:25:42

❶ git如何使用

由於Git對於項目的管理很高效,因此現在使用Git的公司很多,在java開發中,我們經常使用的IDEA和Eclipse都可以很好的集成Git;

在IDEA中,天然集成Git插件,因此我們不需要再額外的進行操作,只需要在本地中安裝Git就可以。

首先我們需要從遠程倉庫將代碼克隆到本地:

git clone https://github.com/test, clone後面跟隨遠程倉庫的鏈接地址

當我們打開本地的Git倉庫項目之後,我們可以在項目中右擊進行Git操作,其中包含提交,拉去,推送等命令

我們也可以在git->repository->pull將代碼從遠程倉庫拉取下來進行更新

對應命令 git pull

Git基本命令簡介

克隆遠程倉庫到本地:git clone https://github.com/test [myproject],將遠程代碼克隆到本地並重命名myproject(可選)

Git查看遠程倉庫地址: git remote -v

查看修改過的文件列表:git status

查看每個文件的修改對比: git diff

提交文件: git commit -m 『提交信息』 filename

查看提交日誌:git log

查看創建新分支:git branch [name] 如果name不為空則創建一個新的分支name

切換分支: git checkout name 需要切換的分支名name

撤銷對文件的修改: git checkout filename 將filename(文件名)的修改內容撤銷

拉取遠程倉庫代碼: git pull origin/name 如果之前拉取過這個分支,直接使用git pull就可以

將代碼推送到遠程倉庫: git push

.gitignore文件介紹

有時候我們在上傳代碼的時候,只需要將主要的文件上傳即可,對於一些編譯後的文件,我們並不需要上傳,因此我們可以在.gitignore講我們不需要的文件進行過濾;

a.txt 忽略指定文件a.txt

target/ 忽略target路徑下的所有文件

*.class 忽略所有以.class結尾的文件

/project/build/ 路徑在project/build下的所有文件

**/build/ 忽略所有build下的文件

希望以上內容對您有所幫助,點擊這里領取我們線上學習免費課程。更多Java干貨可以持續關注浙江優就業官方網站以及浙江優就業公眾號具體了解哦。如果大家有時間的話,最好是能到我們線下基地進行實地考察。

❷ Git常用命令--(ls,cat,mv,touch)

描述:列出有關文件的信息(默認為當前目錄)。如果沒有指定-cftuvSUX或——Sort,則按字母順序排序。

-a 列出所有文件,包括隱藏文件和以「.」開頭的文件;
-d 列出目錄本身;
-l 列出條目的詳細信息;
-r 以反序排列;
-t 按時間排列;
-h 顯示的文件大小按人類可讀的方式;
-R 遞歸處理子目錄 ;
-X 以文件名的後綴排序;
-S 按文件大小排序

ls
列出當前目錄下的所有文件,這個用的最多。
ls -al
列出所有文件(包括隱藏文件和以「.」開頭的文件),及其詳細信息;
ls - lt
列出所有文件詳細信息,並按時間排序,時間最近的靠前。

描述:連接和查看文本文件

-n 從1開始對所有輸出行進行編號;
-b 和n相似,但是空行不編號;
-s 遇到連續空行時合並為一行;

cat file1
列印文件內容
cat file1 file2 > file3
合並文件1和2的內容輸出到文件3,如果文件3存在則覆蓋
cat -n file1 >> file2
把文件1的內容按行編號後追加到文件2

描述:用來移動文件或者重命名

-b 若需覆蓋文件,則覆蓋前先備份;
-f 如果目標文件存在,強制覆蓋;
-i 若目標文件存在,詢問是否覆蓋;
-t 移動多個源文件到一個目錄,使用中目標目錄寫在前,源文件在後

mv aa.txt bb.txt
將文件aa.txt改名為bb.txt;
mv aa.txt demo
將文件aa.txt移動到目錄demo中;
mv aa.txt bb.txt dir1; mv -t ~/Desktop/demo-1/dir2 aa.txt bb.txt
先將文件aa.txt和bb.txt移動到目錄dir1,然後再將文件aa.txt和bb.txt移動到目錄dir2中;
mv dir1 dir2
如果目錄dir2不存在,將目錄dir1改名為dir2;如果dir2存在,將dir1移動到dir2

描述:用來新建一個文件,或者修改已存在文件的時間戳

-a 只更改存取時間;
-c 不建立任何文檔;
-d 使用指定的日期時間;

touch aa.txt bb.txt
創建文件aa.txt和bb.txt
touch -c cc.txt
如果cc.txt不存在就不更改時間戳也不建立cc.txt
touch -r bb.txt
更新bb.txt的時間戳

Git命令和參數都很多,需要慢慢學。可以使用Git的 --help命令查看詳細用法,如輸入cat --help,查看cat命令的參數及使用方法。也可以使用網站explainshell.com,輸入各種組合參數的命令來查詢,每一個參數都會有解釋。

❸ Git 中 6 個基本常用命令

大家好啊,我是大田。

想更深刻了解 Git 常用命令,先來看看原理圖:

我們使用 Git 操作的核心步驟就是:

先add代碼到git緩存

然後commit到git本地倉庫

最後push到遠程Github代碼倉庫

備註:

workspace:當前工作區,需要經過 add、commit、push 才能上傳到遠程倉庫

index:緩存區,標仔鎮記你本地的哪些內容是被 git 管理的

repository:本地倉庫,保存各個版本的提交

remote:遠程倉庫

1、克隆遠程項目到本地

git clone url

2、克隆後,創建新分支,名字叫 dev

git checkout -b dev

3、加到緩存區

1)git add .:添加所有項目至緩存區

2)git add 目錄名:添加指定目錄腔陸到緩存區

3)git add 文件名:添加指定文件到緩存區

4、提交至本地倉庫

git commit -m "注釋信息"

5、推送本地倉庫信息至遠程倉庫

git push origin master:將本地分支的更新內容,全部推送至遠程倉庫 master 分支

git push origin dev:將本地 dev 分支推送到遠程,再由一個人統一加到 master 分念圓粗支上

6、拉取遠程倉庫最新文件

git pull:拉取遠程倉庫所有分支合並到本地

git pull origin master:拉取遠程master分支,合並到當前本地master分支

git fetch:僅做拉取操作,不做合並,合並需要自己再找其他方法

備註:一般都用 git pull

❹ git bash中輸入文件名一部分,按什麼快捷快可以讓bash輸出全名

tab鍵,用於自動補全。
通用的不全是文件名和文件夾
定製的補全可以擁有更多特性。

❺ git常用命令是什麼

1、在當前目錄新建一個Git代碼庫,:$ git init

2、新建一個目錄,將其初始化為Git代碼庫,:$ git init [project-name]

3、下載一個項目和它的整個代碼歷史,:$ git clone [url]

4、顯示當前的Git配置,:$ git config --list

5、編輯Git配置文件,:$ git config -e [--global]

6、設置提交代碼時的用戶信息,:$ git config [--global] user.name "[name]",:$ git config [--global] user.email "[email address]"

7、添加指定文件到暫存區,:$ git add [file1] [file2] ...

8、添加指定目錄到暫存區,包括子目錄,:$ git add [dir]

9、添加當前目錄的所有文件到暫存區,:$ git add .

10、對於同一個文件的多處變化,可以實現分次提交,:$ git add -p

11、刪除工作區文件,並且將這次刪除放入暫存區,:$ git rm [file1] [file2] ...

12、停止追蹤指定文件,但該文件會保留在工作區,:$ git rm --cached [file]

13、改名文件,並且將這個改名放入暫存區,:$ git mv [file-original] [file-renamed]

14、提交暫存區到倉庫區,:$ git commit -m [message]

15、提交暫存區的指定文件到倉庫區,:$ git commit [file1] [file2] ... -m [message]

16、提交工作區自上次commit之後的變化,直接到倉庫區,:$ git commit -a

17、提交時顯示所有diff信息,:$ git commit -v

18、使用一次新的commit,替代上一次提交

19、 如果代碼沒有任何新變化,則用來改寫上一次commit的提交信息,:$ git commit --amend -m [message]

20、重做上一次commit,並包括指定文件的新變化,:$ git commit --amend [file1] [file2]

(5)git命令自動補全擴展閱讀:

git有以下功能:

1、從伺服器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。

2、在自己的機器上根據不同的開發目的,創建分支,修改代碼。

3、在單機上自己創建的分支上提交代碼。

4、在單機上合並分支。

5、把伺服器上最新版的代碼fetch下來,然後跟自己的主分支合並。

6、生成補丁(patch),把補丁發送給主開發者。

7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有沖突(他們之間可以合作解決的沖突),就會要求他們先解決沖突,然後再由其中一個人提交。如果主開發者可以自己解決,或者沒有沖突,就通過。

8、一般開發者之間解決沖突的方法,開發者之間可以使用pull 命令解決沖突,解決完沖突之後再向主開發者提交補丁。

❻ 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)), 有成百的內容,每個都工作得很好。現在, 你提交到了一個分支,保存工作內容:微信搜索公眾號:Java後端編程,回復:java 領取資料 。

當你想要把它放到一個分支里 (可能是 feature , 或者 develop ), 你關心是保持整個文件的完整,你想要一個大的提交分隔成比較小。

假設你有:

我去可以通過把內容拿到你的分支里,來解決這個問題:

這會把這個文件內容從分支 solution 拿到分支 develop 里來:

然後, 正常提交。

Note: Spike solutions are made to analyze or solve the problem. These solutions are used for estimation and discarded once everyone gets clear visualization of the problem.

假設你有一個 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里被合並的分支。如果你不準備繼續在這個分支里工作, 刪除這個分支的本地拷貝會更干凈,使你不會陷入工作分支和一堆陳舊分支的混亂之中(IDEA 中玩轉 Git)。

如果你定期推送到遠程, 多數情況下應該是安全的,但有些時候還是可能刪除了還沒有推到遠程的分支。讓我們先創建一個分支和一個新的文件:

添加文件並做一次提交

現在我們切回到主(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)的存在過留下證據, 保持項目 歷史 一致(更多Git資料,參見IDEA 中如何完成 Git 版本回退?)。

有時候,在將數據推向上游之前,你有幾個正在進行的工作提交(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,這提供了一個在 歷史 被意外更改情況下的安全網。

閱讀全文

與git命令自動補全相關的資料

熱點內容
linux文件操作命令 瀏覽:125
安卓手機圖片文件夾加鎖 瀏覽:776
steam提示音在哪個文件夾 瀏覽:337
項目開發全程實錄pdf 瀏覽:530
單片機reset 瀏覽:595
pdf怎麼是英文 瀏覽:969
旗雲2壓縮機保險 瀏覽:374
做程序員壓力大嗎表情包 瀏覽:312
pdf下拉 瀏覽:371
php去掉小數後面的0 瀏覽:954
阿里備案買什麼伺服器 瀏覽:261
網路驅動下載到哪個文件夾 瀏覽:481
達內程序員培訓西安 瀏覽:505
人保送車主惠app上怎麼年檢 瀏覽:604
android手機開機密碼 瀏覽:480
linux查看某個進程命令 瀏覽:529
閑置的騰訊雲伺服器 瀏覽:438
rar壓縮包mac 瀏覽:628
php混淆加密工具 瀏覽:582
java把數字拆分 瀏覽:465