javascript

java

python

c#

android

node.js

c++

reactjs

php

html

jquery

css

.net

ios

git

ruby-on-rails

sql

c

string

ruby

將Git存儲庫從GitHub分叉到GitLab

假設我想對其他人的項目實施修復。 該項目位于GitHub上。

我可以在GitHub上創建一個fork并實現此修復程序。

但是,我想在GitLab而不是GitHub上創建我的fork。

那可能嗎? 怎么樣?

我已經閱讀了這篇文章:[https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-origin/]

無論如何,我不確定該怎么辦。

  • 我是否應該以某種方式在GitHub的項目的GitLab上創建一個fork?
  • 還是應該在GitHub的項目的GitLab上創建鏡像?
  • 還是應該在GitLab上創建一個鏡像,然后分叉該鏡像?
  • 還是我應該做一些完全不同的事情?

什么是正確的方法。

謝謝。

更新

GitLab上的存儲庫鏡像可能沒有意義。 我可以在GitLab上創建MY GitHub存儲庫的鏡像,但不能創建其他人的存儲庫的鏡像。

[HTTPS://docs.git lab.com/哦哦/workflow/repository_mirroring.HTML]

到目前為止,這是我所做的:

我已經將原始GitHub項目克隆到了本地機器上。 我已將修復程序提交到本地存儲庫中的新分支。 我在GitLab上創建了一個空項目。 我已經將本地存儲庫中的源設置為GitLab上的那個空項目,并將兩個分支都推送到GitLab。 我已經在本地存儲庫中將上游設置為GitHub存儲庫。

當我想從原始GitHub存儲庫獲取新的提交到GitLab上的存儲庫時(即同步存儲庫),可以使用本地存儲庫作為中間步驟來完成此操作。 但是,GitHub上的存儲庫和GitLab上的存儲庫之間沒有直接連接。 我的設置正確嗎? 如果我在GitHub上進行分叉,有什么區別嗎?

trans by 2020-02-29T11:33:08Z

githooks-跟蹤.git / hooks中的鉤子更改

有沒有辦法跟蹤git hook的變化? 我有三個僅在我的機器上顯示的鉤子可以领救济金的游戏,而不是在其他開發人員獲取時顯示的鉤子。 嘗試git add不起作用。

trans by 2020-02-29T11:13:42Z

告訴git忽略符號鏈接

這個問題在這里和這里都以類似的形式出現,但是它們似乎與我所尋找的不匹配。

我正在使用Ruby靜態站點生成器StaticMatic進行項目。 基本上,這只是一個帶有Haml模板,Sass和CoffeeScript的src /目錄。 StaticMatic提供了一個開發服務器來將它們不斷編譯到一個靜態站點中,并提供了一個在build /中生成靜態站點的生成命令。

我對StaticMatic的修改是允許添加src / _modules / foo /,其中可能包含src / _modules / foo / bar.haml。 運行服務器或構建站點時,將在src / bar.haml中創建一個符號鏈接,該鏈接指向foo /中的文件。

到目前為止,一切都很好。 (處理沖突等)

_modules /中的單獨目錄背后的原因是可以领救济金的游戏,它們可以作為git子模塊進行跟蹤,并由其他團隊獨立檢出。 從本質上講,這允許多個團隊在一個靜態站點中的不同頁面(實際上是JS應用程序)上工作,而無需重復主布局等。

困難在于git希望將這些符號鏈接視為文件。 例如src/_modules/bar/foo.haml顯示:

# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be commited)
#
#       src/_modules/bar/foo.haml
#       src/foo.haml

...當我真的只想要它顯示src/_modules/bar/foo.haml而忽略src/foo.haml

一種方法是讓我的鏈接生成代碼將鏈接附加到.gitignore,但以編程方式弄亂.gitignore會使我感到容易出錯。 (也許這種擔心是不合理的?)

我理想的解決方法是:

[filetype = link]

...在.gitignore中。 據我所知,這是不可能的,或者是嗎?

trans by 2020-02-29T10:54:01Z

從TFS遷移到Gi

是否可以從TFS 2008遷移到Git,并仍然保留所有歷史記錄等?我見過一些有關通過SVN做到這一點的參考,但這似乎相當復雜,并且使我在工作中引入Git的任務變得復雜。

trans by 2020-02-23T01:19:01Z

github-從gi還原特定的提交

我有很多提交和很多文件的git樹。 現在,我想還原僅涉及文件的特定提交。 解釋:

> git init
Initialized empty Git repository in /home/psankar/specific/.git/
> echo "File a" > a
> git add a ; git commit -m "File a"
[master (root-commit) 5267c21] File a
 1 file changed, 1 insertion(+)
 create mode 100644 a
> echo "File b" > b
> git add b; git commit -m "File b"
[master 7b560ae] File b
 1 file changed, 1 insertion(+)
 create mode 100644 b
> echo "File c" > c
> git add c; git commit -m "File c"
[master fd6c132] File c
 1 file changed, 1 insertion(+)
 create mode 100644 c
> echo "b and c modified" > b ; cp b c
> git commit -a -m "b and c modified"
[master 1d8b062] b and c modified
 2 files changed, 2 insertions(+), 2 deletions(-)
> echo "a modified" > a
> git commit -a -m "a modified"
[master 5b7e0cd] a modified
 1 file changed, 1 insertion(+), 1 deletion(-)
> echo "c modified" > c
> git commit -a -m "c modified"
[master b49eb8e] c modified
 1 file changed, 1 insertion(+), 1 deletion(-)
> git log --pretty=oneline c
> git log --pretty=oneline c | cat
b49eb8e03af331bddf90342af7d076f831282bc9 c modified
1d8b062748f23d5b75a77f120930af6610b8ff98 b and c modified
fd6c13282ae887598d39bcd894c050878c53ccf1 File c

現在,我只想還原兩個提交b49eb8和1d8b06而不將更改還原到a。 IOW僅還原文件中的提交(不還原其他文件中的其他中間提交(可能是數千個)),這怎么可能?

trans by 2020-02-22T18:46:06Z

合并-Git:防止在master分支中提交

(為簡單起見),我的Git-repo中有master分支和--no-ff。我想確保dev分支始終正常工作,所以我所做的所有工作都應該在dev分支中。

但是,當我將更改與master合并在一起時,我傾向于留在--no-ff分支中,然后繼續工作(因為我忘記簽出dev分支)。

我可以為master分支建立一條規則,該規則指出我無法進行提交,并且不能進行快速合并,但是只有--no-ff從另一個分支進行合并?

這必須適用于私有托管存儲庫(ergo不適用于GitHub和BitBucket)。

trans by 2020-02-22T02:43:16Z

如何從另一臺計算機“ git clone”?

在一臺機器(IP地址192.168.1.2)上,我通過以下方式創建了一個Git存儲庫

$ cd /home/hap/working
$ git init
$ (add some files)
$ git add .
$ git commit -m 'Initial commit'

我在同一Wi-Fi網絡上還有另一臺計算機。 如何從另一臺計算機上克隆?

trans by 2020-02-22T01:39:56Z

git使用什么算法來檢測您的工作樹上的更改?

這是關于git status的內部信息。

我一直在閱讀出色的“ Pro Git”書,并了解一些有關git在內部如何工作的知識(有關SHA1,blob,引用,樹,提交等)。 順便說一句,非常聰明的架構。

因此,在上下文中,git將文件的內容作為SHA1值引用,因此僅通過比較哈希值就可以知道特定內容是否已更改。 但是我的問題特別是關于git如何檢查工作樹中的內容是否已更改。

天真的方法會認為每次運行git status或類似的命令時,它將搜索工作目錄中的所有文件,計算SHA1并將其與最后提交的SHA1進行比較。 但這對于像Linux內核這樣的大型項目而言似乎效率很低。

另一個想法可能是檢查文件的上次修改日期,但我認為git不會存儲該信息(克隆存儲庫時,所有文件都有新的時間)

我確信它正在以一種有效的方式做到這一點(git確實非常快),有人知道如何實現嗎?

PD:只是添加了一個有趣的有關git索引的鏈接,特別指出該索引保留有關文件時間戳的信息,即使樹對象沒有。

trans by 2020-02-22T00:40:46Z

Git恢復Heroku中的最后一次提交

我做了一個承諾,并將其推到了起源和heroku

然后我意識到這是錯誤的,所以我做到了

git reset --soft HEAD^ 

但是當我向Heroku推銷時

To git@heroku.com:app.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'git@heroku.com:app.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

我了解這個問題。 我應該如何進行? 我如何還可以恢復上一次的heroku提交? (我認為這是的解決方案)

trans by 2020-02-21T03:55:52Z

git pull-Git:如何檢查本地存儲庫是否最新?

我想知道我的本地倉庫是否是最新的(如果不是,理想情況下,我想查看更改)。

如果不進行git fetchgit pull怎么辦?

trans by 2020-02-21T02:26:48Z

git-如何在幾個分支上同時工作

這是關于創建分支的此問題的后續措施。

我仍然可以在一個存儲庫上工作,這使我感到奇怪,因為本地計算機上的文件將是各種實驗的奇怪組合。

我想的方法是復制存儲庫并在每個分支的計算機上的不同文件夾中工作-但我不知道如何設置它。 我當前的存儲庫位于Documents / San / CompProj,那么我將使用哪些命令來創建綁定到不同本地文件夾中不同分支的新存儲庫?

Git對我來說還很陌生,所以我很喜歡您可以對我在上面假設/提出的問題進行的任何更正。

trans by 2020-02-20T12:50:52Z

ubuntu-git列出所有可用的命令

是否有可以向我顯示GIT中所有可用命令列表的命令? 有git help,但顯示:

usage: git [--version] [--exec-path[=<path>]] [--html-path]
           [-p|--paginate|--no-pager] [--no-replace-objects]
           [--bare] [--git-dir=<path>] [--work-tree=<path>]
           [-c name=value] [--help]
           <command> [<args>]
The most commonly used git commands are:
   add        Add file contents to the index
   bisect     Find by binary search the change that introduced a bug
   branch     List, create, or delete branches
   checkout   Checkout a branch or paths to the working tree
   clone      Clone a repository into a new directory
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   fetch      Download objects and refs from another repository
   grep       Print lines matching a pattern
   init       Create an empty git repository or reinitialize an existing one
   log        Show commit logs
   merge      Join two or more development histories together
   mv         Move or rename a file, a directory, or a symlink
   pull       Fetch from and merge with another repository or a local branch
   push       Update remote refs along with associated objects
   rebase     Forward-port local commits to the updated upstream head
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index
   show       Show various types of objects
   status     Show the working tree status
   tag        Create, list, delete or verify a tag object signed with GPG
See 'git help <command>' for more information on a specific command.

我只想列出沒有說明的內容。

trans by 2020-02-20T08:22:54Z

使用(END)在Git命令期間Git Windows命令提示符卡住了

我安裝了用于Windows的Git安裝程序(msysgit),最近幾天它運行良好,今天我遇到了一個奇怪的錯誤。

在Windows命令提示符或與msysgit捆綁在一起的Git Bash中發出Git命令時,出現奇怪的'(END)'行,然后我無法發出任何其他命令。

alt text

此時,我得到的只是系統提示音。

有任何想法嗎?

謝謝,P。

trans by 2020-02-20T01:24:21Z

github-對git push進行故障排除-它要求用戶/密碼

我在新的git linux計算機上使用git。 當我執行git push時,我要求輸入用戶名/密碼。

我已經正確設置了git,實際上將回購從github克隆到新文件夾中的工作非常完美(使用我的公共密鑰,而不是只讀副本)。 當我嘗試從以前的克隆推送到相同的存儲庫時,系統會提示我輸入用戶名/密碼。

當然,將ssh放入git@github.com是可行的,并且我確保在github中配置了我的公鑰。 任何想法如何繼續調試?

trans by 2020-02-19T23:26:39Z

git-發生10分鐘錯誤后,在構建jenkins項目超時時

我正在使用jenkins構建我的git遠程項目。 問題是日志顯示“ 10分鐘后超時”。 接收對象開始,并且有56%的事件發生。

trans by 2020-02-19T18:42:04Z

Git嵌套子模塊和依賴項

假設我有四個名為Core,A,B,Super的項目。 依賴關系樹是這樣的:

Super ---> Core
       |-> A -> Core
       |-> B -> Core

我希望每個項目都是獨立的,也就是說,我希望能夠檢出并單獨編譯每個項目(當然每個項目都具有依賴項)。

我考慮過將每個項目映射到存儲庫,然后使用子模塊引用依賴項,但是這種方法存在以下問題:

  1. 當檢查Super及其所有依賴項時,我最終得到了Core的三個副本。
  2. 由于子模塊是完全獨立的,所以這三個副本中的每一個都可能指向Core的不同修訂版,這很混亂。

所以...我想念什么嗎? 我是否誤解了git子模塊或濫用了它們? 是否有其他解決此問題的方法(除了訴諸二進制依賴性之外)?

trans by 2020-02-19T15:45:39Z

SVN-是什么使DVCS中的合并變得容易?

我在Joel上閱讀有關軟件的文章:

通過分布式版本控制,   分布式部分實際上不是   最有趣的部分。

有趣的是,這些   系統根據變化而不是思考   在版本方面。

在HgInit:

當我們必須合并時,Subversion   嘗試查看兩個修訂版本-我的   修改的代碼,以及您修改的   代碼,它試圖猜測如何   將它們粉碎成一個大的邪惡   一團糟。 通常會失敗,產生   頁面和“合并沖突”頁面   并不是真正的沖突,只是   Subversion失敗的地方   弄清楚我們做了什么。

相比之下,我們在工作時   在Mercurial中,Mercurial是   忙于保存一系列變更集。   因此,當我們想要合并我們的代碼時   一起,水星實際上有一個   更多信息:它知道   我們每個人都改變了什么并且可以   重新應用這些更改,而不是   只看最終產品,   試圖猜測如何把它   一起。

通過查看SVN的存儲庫文件夾,我的印象是Subversion將每個修訂都保留為變更集。 據我所知,Hg同時使用變更集和快照,而Git僅使用快照來存儲數據。

如果我的假設是正確的,那么必須有其他方法可以使DVCS中的合并變得容易。 那些是什么?

*更新:

  • 我對技術角度更感興趣,但是可以接受非技術角度的答案
  • 更正:
    1. Git的概念模型完全基于快照。 快照可以作為其他快照的差異存儲,只是差異僅用于存儲優化。 –RafałDowgird的評論
  • 從非技術角度:
    1. 這僅僅是文化上的:如果合并困難,DVCS根本無法工作,因此DVCS開發人員投入了大量時間和精力來簡化合并。 CVCS用戶OTOH習慣了糟糕的合并,因此開發人員沒有動力使其工作。 (為什么當您的用戶為您的產品付錢時,您也付出了同樣的價錢?)
      ...
      回顧一下:DVCS的重點是擁有許多分散的存儲庫,并不斷地來回合并更改。 如果沒有良好的合并,DVCS就毫無用處。 但是,CVCS仍然可以在糟糕的合并中幸存下來,尤其是在供應商可以限制其用戶避免分支的情況下。 –JörgW Mittag的答案
  • 從技術角度來看:
    1. 記錄真實的DAG歷史記錄確實有幫助! 我認為主要的區別是CVCS并不總是將合并記錄為變更集并與多個父級一起丟失某些信息。 – tonfa的評論
    2. 因為有合并跟蹤功能,而且更基本的事實是每個修訂版都知道其父級。 ...當每個修訂(每個提交)(包括合并提交)了解其父級(對于合并提交意味著擁有/記住多個父級,即合并跟蹤)時,您可以重構修訂圖(DAG =直接非循環圖) 歷史。 如果您知道修訂圖,則可以找到要合并的提交的共同祖先。 而且,當您的DVCS知道如何查找共同祖先時,您無需將其作為參數提供,例如在CVS中。

      請注意,兩個(或更多)提交中可能有一個以上的共同祖先。 Git使用所謂的“遞歸”合并策略,該策略合并合并基數(公共祖先),直到您剩下一個虛擬/有效的公共祖先(以某種簡化方式),并且可以執行簡單的三向合并。 – JakubNarębski的答案

還要檢查如何和/或為什么在Git中合并比在SVN中更好?

trans by 2020-02-19T04:57:05Z

如何解決“ git pull,致命:無法訪問'[https://github.com ... \':]來自服務器的空回復”

當我使用Git命令“ git pull”更新存儲庫時,失敗,消息如下:致命:無法訪問“ ...”:來自服務器的空回復。

而且我嘗試使用GitHub App,但請注意以下幾點:

Cloning into 'renren_mobile'...
warning: templates not found /Applications/GitHub.app/Contents/Resources/git/templates
2014-11-23 13:58:57.975 GitHub for Mac Login[659:11891] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login",
    "Username for 'https://github.com': "
)
2014-11-23 13:58:58.032 GitHub for Mac Login[660:11915] AskPass with arguments: (
    "/Applications/GitHub.app/Contents/MacOS/GitHub for Mac Login",
    "Password for '': "
)
fatal: unable to access '...': Empty reply from server
 (128)
trans by 2020-02-18T21:45:41Z

github-Git push master致命:您當前不在分支機構

主人說的是第10次提交。 但是,我最終意識到我在測試中遇到了一些無法解決的問題。

我最終提交了#5,然后慢慢地重新調整了每個提交的開發人員,并不斷對其進行了調整,以確保它不會引起該錯誤。 現在,我實質上已經回到了提交#10的位置,但是進行了許多更改以防止該bug發生。

現在,我想使用我的更改來創建提交#11。 但是當我嘗試推動掌握時

fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use
    git push master HEAD:<name-of-remote-branch>

這是可以預期的。 但是,實際上我該如何將其推送到我的遠程分支?

我嘗試了git status,但是得到了:

! [rejected]        HEAD -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/tomhammond/sample.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

當我執行git status時,我看到HEAD detached from 4a74ac3

trans by 2020-02-18T19:03:15Z

為所有子文件夾設置git config值

我知道可以設置覆蓋用戶級配置的每個存儲庫配置(即.gitconfig_override覆蓋childFolder1)。 是否可以設置git configs來覆蓋給定文件夾的所有子文件夾的用戶級設置? 即,我有

|--topLevelFolder1
|--\
|   ---.gitconfig_override
|--\
|   ---childFolder1
|       \---[...]
|--\
|   ---childFolder2
|       \---[...]

我希望在childFolder1childFolder2中應用在.gitconfig_override中定義的設置。

我這樣做的動機如下:我有一臺筆記本電腦,業余時間還可以用于個人項目。 我所有的工作代碼都嵌套在一個文件夾中。 當我推動工作git repos時,我需要使用我的工作角色-工作登錄名(而不是姓名)和工作電子郵件。 當我推送到自己的個人(github)存儲庫時,我想使用我的真實姓名和個人電子郵件。

我想到的其他可能的解決方案(和問題):

  • 為“工作”和“娛樂”創建單獨的用戶,適當設置他們的用戶級別設置,并在切換上下文時以適當的用戶身份登錄(麻煩,再加上我很容易忘記切換)
  • 創建一個腳本,在“ workFolder”中搜索git倉庫,并添加/更新其.gitconfig文件以保存適當的詳細信息(如果我創建了一個倉庫并且忘記在推送之前運行該腳本,那么我將以錯誤的身份推送)
  • “ hack” git可以领救济金的游戏,這樣每次創建一個repo時,它都會檢查文件路徑,并在適當的情況下更新.gitconfig文件(復雜,混亂且幾乎可以肯定是錯誤的方法,而且我也不會 首要線索是怎么做!)

我檢查了這個問題,該問題似乎僅包含單個存儲庫的解決方案,而不是多個存儲庫。 希望有人會錯過這個問題!

trans by 2020-02-18T13:44:29Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一頁 共118頁