私はWindows 10コンピュータ(Cygwinベース)からROOTおよびPythonスクリプト/マクロにアクセスするための端末としてmobaXtermを使用してきました。また、同僚と私はGitlabを使ってこれらのスクリプト/マクロを共有してきました。最近、私たちはGitlabを使って共有されたLaTeXドキュメントの作業を始めました。私が直面している問題は、LaTeXエディタとして使用するOverleafとGitlabを統合することです。
私は与えられたガイドに従った。OverleafのgitリポジトリをGithubに関連付ける方法は次のとおりです。、ちょうどいくつかの迷惑な問題が発生しました。
まず、次の行を使用してOverleafリポジトリを自分のコンピュータにgit cloneできるようです。git clone https://git.overleaf.com/%%%%%%%%%%%%%% note_name
続いてgit remote rename origin overleaf
それから私は糸を引いた。git pull overleaf master
これらのどれも問題を起こさないようでした。その後、次の行でGitlabリポジトリを追加しました。git remote add gitlab https://gitlab.thing.ty/folder/note_name.git
git config --global push.default matching
その後、Gitlabの予備プッシュを行いました。
git push gitlab
Username for 'https://gitlab.thing.ty':
Password for 'https://[email protected]':
Counting objects: 21, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (20/20), done.
Writing objects: 100% (21/21), 50.81 KiB | 0 bytes/s, done.
Total 21 (delta 7), reused 0 (delta 0)
To https://gitlab.thing.ty/folder/note_name.git
ccf7614..596ba69 master -> master`
その後、Overleafからインポートします。git pull overleaf master
remote: Counting objects: 5, done
remote: Finding sources: 100% (3/3)
remote: Getting sizes: 100% (4/4)
remote: Compressing objects: 100% (7764/7764)
remote: Total 3 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://git.overleaf.com/%%%%%%%%%%%%
* branch master -> FETCH_HEAD
f0173f3..d3bb61b master -> overleaf/master
Merge made by the 'recursive' strategy.
Section2.tex | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)`
これで、変更をコミットし、変更をGitlabにプッシュする必要があるときに問題が発生します。次の行が表示されます。
git commit -m "configuring git access, no major edits have been made"
On branch master
Your branch is ahead of 'overleaf/master' by 16 commits.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
そして
git push gitlab
Username for 'https://gitlab.thing.ty':
Password for 'https://[email protected]':
To https://gitlab.thing.ty/folder/note_name.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to
'https://gitlab.thing.ty/folder/note_name.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
2つの異なるストレージを同時に管理する方法がわからないようです。
ベストアンサー1
コミット数が最も多いリポジトリは、変更を試みる前にプルするリポジトリでなければなりません。
git pull upstream master
次に、gitlabリポジトリがアップストリームと同期していることを確認してください。
git push origin master
これにより、作業中に両方のストレージが同期されます。
git log
あなたは次のようなものを見なければなりません
commit 798a0433ad807b6127066cac3f6e33d6551ef0d4 (HEAD -> master, upstream/master, origin/master)
これは、両方のリポジトリが同じコミットにあることを意味します。
完了したら(別のブランチで作業している方が良い)、その変更をコミットする必要があります。git commit --all -m "some text"
これを完了すると、両方をリードする新しいブランチがgit log
表示され、upstream
使用origin
する必要がある2つのいずれかに変更を統合したい場合は、リポジトリに1つが作成されますgit rebase
。マージ時にすべてのコミットが溶けるのでfast-forward
使用しません。pull
その後、両方のストレージへの書き込みアクセス権がないとします。
たとえば、git fetch
リポジトリから変更をダウンロードしてgit fetch upstream master
コミットを表示し、安全な方法で変更をマージするためにgit log
使用されます。git rebase
引用するGit公式書籍詳細については、最初の3章を読んだ後にアイデアを得ることができます。