git(ubuntuサーバー上)を使用してファイルを管理します。私はlocal(mac)で練習しました。ディレクトリdsがサーバで、d1がuser1、d2がuser2であると仮定しています。 git pushを実行しますが、ファイルを追加または変更しません。
この
は私のワークフローです:$ mkdir ds
$ cd ds
$ git init
$ echo '1' > 1.txt
$ git add 1.txt
$ git commit -m 'add 1.txt'
[master (root-commit) 8eab711] add 1.txt
1 file changed, 1 insertion(+)
create mode 100644 1.txt
、今私はgitのクローン試してみました:今、私はD1でファイルを作成しようとしました
$ cd ds
$ git config core.bare true
$ git status
fatal: This operation must be run in a work tree
:リモートストレージの設定を変更する
$ cd ..
$ ls
ds
$ git clone ds d1
$ git clone ds d2
$ ls
d1 d2 ds
。
$ cd ../d1
$ ls
1.txt
$ echo '2' > 2.txt
$ git add 2.txt
$ git commit -m 'add 2.txt'
[master 22242b8] add 2.txt
1 file changed, 1 insertion(+)
create mode 100644 2.txt
$ ls
1.txt 2.txt
$ git log
commit 22242b885bbc0d2189470dd720eaf0a0a0c97ce6 (HEAD -> master)
Author: Name <[email protected]>
Date: Thu Sep 28 10:44:48 2017 +0900
add 2.txt
commit 8eab711880834e9e81e17d02cf6bd958e69fa58a (origin/master, origin/HEAD)
Author: Name <[email protected]>
Date: Thu Sep 28 10:38:48 2017 +0900
add 1.txt
チェックを試みたところ、問題ありませんでした。 今私はpush
を試しました!
$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 257 bytes | 257.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To ..(skip)../Code/git/ds
8eab711..22242b8 master -> master
$ls
1.txt 2.txt
ここでは、dsディレクトリのファイルをチェックします。ここに問題がありました。
$ cd ../ds
$ ls
1.txt
「1.txt」のみです。私はgitログをチェックしました。
$ git log
commit 22242b885bbc0d2189470dd720eaf0a0a0c97ce6 (HEAD -> master)
Author: Name <[email protected]>
Date: Thu Sep 28 10:44:48 2017 +0900
add 2.txt
commit 8eab711880834e9e81e17d02cf6bd958e69fa58a
Author: Name <[email protected]>
Date: Thu Sep 28 10:38:48 2017 +0900
add 1.txt
私は混乱しています。 githubでは、私がプッシュすると、ファイルが変更されることを覚えています.. そして私はg2をd2ディレクトリにプルしようとしました。
$ cd ../d2
$ ls
1.txt
$ git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From ..(skip)../Code/git/ds
8eab711..22242b8 master -> origin/master
Updating 8eab711..22242b8
Fast-forward
2.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 2.txt
$ ls
1.txt 2.txt
Oh my god、2.txtが登場しました。
dsでファイルが変更されていませんか?どのようにすべてのリポジトリのファイルを同じに保つことができますか?
ありがとうございます。
回避できる場合は、手動でcore.bareを設定しないでください。代わりに--bareを使用してクローンします。あなたはそう多くの手動作業を行う必要はありません –