A. 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> //重現將本地倉庫和遠程倉庫關聯
最後,如果此篇博文對你有所幫助,別忘了點個贊喲~
B. 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]
(2)git如何使用命令擴展閱讀:
git有以下功能:
1、從伺服器上克隆完整的Git倉庫(包括代碼和版本信息)到單機上。
2、在自己的機器上根據不同的開發目的,創建分支,修改代碼。
3、在單機上自己創建的分支上提交代碼。
4、在單機上合並分支。
5、把伺服器上最新版的代碼fetch下來,然後跟自己的主分支合並。
6、生成補丁(patch),把補丁發送給主開發者。
7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有沖突(他們之間可以合作解決的沖突),就會要求他們先解決沖突,然後再由其中一個人提交。如果主開發者可以自己解決,或者沒有沖突,就通過。
8、一般開發者之間解決沖突的方法,開發者之間可以使用pull 命令解決沖突,解決完沖突之後再向主開發者提交補丁。
C. 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干貨可以持續關注浙江優就業官方網站以及浙江優就業公眾號具體了解哦。如果大家有時間的話,最好是能到我們線下基地進行實地考察。
D. 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
E. 5分鍾知道git如何使用(git入門常用命令)
這里引用一下「菜鳥教程」對git的描述
Git 常用的是以下 6 個命令:git clone、git push、git add 、git commit、git checkout、git pull
關於git下唯正氏載安裝這里就不細說了,畢竟我們只有5分鍾的時間,可以去git官網下載對應的清差版本網上查查安裝教程。
首先建立一個本地倉庫(repository)。你可以使用一個已經存在的目錄作為Git倉庫或創建一個空目錄。我這里就創建一個空目錄itep為例:
初始化本地倉庫
我們有一個倉庫,但什麼也沒有,先在工作區創建一個文件『demo.html』,可以使用add命令添加到暫存區。
我們在工作區創建了好幾個新的文件,html,js,和css。接下來我們都可以添加到暫存區
當我們修改了很多文件,而不想每一個都add,想commit自動來提交本地修改,我們可以使用-a標識。 注意是修改,而不是新增,新增的文件我們還是要先add,之後再修改這些文件的話,就可以直接使用-a命令了。
現在我們已經添加了這些文件,我們希望它們能夠真正被保存在Git倉庫。
為此,我們將它們提交到本地倉庫
接下來我們發布版本,提交到遠程倉庫。注意這里遠程倉庫的地址只是舉例
5分鍾已經到了吧...
上面從新建一個頁面,提交到遠程倉庫的流程已經說完了,接下來我們說點別的。。
刪除文件
刪除工作區和暫存區文件git rm ,刪除文件有以下幾種形式
對,就是這么簡單,你的工作區和暫存區demo.js這個文件已經沒有了
如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項 -f。
強行從暫存區和工作區中刪除修改後的 demo.html 文件:
如指散果想把文件從暫存區中刪除,但仍然希望保留在當前工作目錄中的話這樣操作