簡體   English   中英

git:tilda(〜)和脫字符號(^)有什么區別

[英]git: what is difference between tilda (~) and caret (^)

以下是show-rev的git輸出

$ git name-rev  --all

2651919f941c11581c794b40aadb2028c4f52ab4 joincolumn_issue
2617f2a1410ce0ec8ea268bbb073008b73490e78 master~2
292def505dd3cdbfd9ac974396775683b5f4c288 ls
0ec9116840a3f21c0b800617c29b7ddab5fda928 joincolumn_issue~2
ee9bb706c8fcc329fac4acf69ad6b684f1069170 master~1
d56a6751771b1f62d9ceb0bcce9a2391c004ee44 master^2
3d80a12ed375c6a9572cde39b5be0722c8cb6439 joincolumn_issue~1
df1834dbe560c2c95c8abaeec494eb1767b96a1e master

正如您所看到的,有幾行包含master^2master~2所以,想知道這兩者之間有什么區別,而且輸出也沒有按時間順序排列。

進一步的git圖顯示如下

$ git log --all --oneline --graph

* 2651919 (origin/joincolumn_issue, joincolumn_issue) changing to @JoinColumn(name="country_nm")
* 3d80a12 hibernate ignoring joinColumn value
* 0ec9116 changing name in joinColumn is breaking
| * 292def5 (origin/mappedBy, mappedBy, ls) OneToMany using mappedBy
|/
*   df1834d (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/samshers/graphql-hibernate
|\
| * d56a675 fixed country null issue
* | ee9bb70 fixed country null issue
|/
* 2617f2a hibernate cascade error issue. country field in state table set to null

語法BRANCH^裝置的第一個親本BRANCH 語法BRANCH^n表示分支的第n個父級。 換句話說, BRANCH^等效於BRANCH^1 合並時最多只能有一個父級,因此僅當合並時才使用BRANCH^2 (對於章魚合並, BRANCH^3及更高版本)。

語法BRANCH~等效於BRANCH^1 ,而BRANCH~n等效於將n ^1副本添加到BRANCH的末尾。 換句話說,在每種情況下,后者是BRANCH的第n個父代。

通常,第一個父級是主分支,第二個和后續父級是合並到其中的側分支,因此針對這種情況優化了這些語法。

還有其他使用插入符號的語法,但是它們的工作方式不同,含義也不同。 您可以通過man gitrevisions看到有關Git修訂版的所有語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM