Skip to content

Commit

Permalink
New translations 05-history.md (Japanese)
Browse files Browse the repository at this point in the history
  • Loading branch information
tobyhodges committed Sep 30, 2024
1 parent 3779659 commit 4be9842
Showing 1 changed file with 32 additions and 59 deletions.
91 changes: 32 additions & 59 deletions locale/ja/episodes/05-history.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,7 @@ index 0000000..df0654a
このようにして、コミットのチェーンを構築できます。
チェーンの最新の終わりは `HEAD` と呼ばれます; `~` 表記を使用して以前のコミットを参照できるため、`HEAD~1` は「以前のコミット」を意味し、`HEAD~123` は現在の場所から123個前のコミットに戻ります。

We can also refer to commits using
those long strings of digits and letters
that both `git log` and `git show` display.
`git log` および `git show` が表示する、数字と文字の長い文字列を使用してコミットを参照することもできます。
これらは一個一個の変更に対するユニークなIDであり、「ユニーク」は本当に唯一であることを意味します: どのコンピューターのどのファイルの変更の組み合わせに対しても、ユニークな40文字の ID があります。
最初のコミットにはID `f22b25e3233b4645dabd0d81e651fe074bd8e73b` が与えられたので、これを試してみましょう:

Expand Down Expand Up @@ -164,8 +162,7 @@ Changes not staged for commit:
no changes added to commit (use "git add" and/or "git commit -a")
```

We can put things back the way they were
by using `git restore`:
`git restore`を使うと、元の状態に戻すことができます:

```bash
$ git restore mars.txt
Expand All @@ -178,13 +175,9 @@ The two moons may be a problem for Wolfman
But the Mummy will appreciate the lack of humidity
```

As you might guess from its name,
`git restore` restores an old version of a file.
By default,
it recovers the version of the file recorded in `HEAD`,
which is the last saved commit.
If we want to go back even further,
we can use a commit identifier instead, using `-s` option:
その名前から推測できるように、`git restore` はファイルの古いバージョンを復元します。
この場合、最後に保存されたコミットである `HEAD` に記録されたファイルのバージョンを復元することをGitに伝えています。
さらに遡りたい場合は、`-s`オプションとコミット Id を使うことができます:

```bash
$ git restore -s f22b25e mars.txt
Expand Down Expand Up @@ -214,7 +207,7 @@ no changes added to commit (use "git add" and/or "git commit -a")
```

変更はステージング領域にあることに注意してください。
Again, we can put things back the way they were by using `git restore`:
繰り返しますが、`git restore` を使うと、元の状態に戻すことができます:

```bash
$ git restore mars.txt
Expand All @@ -229,14 +222,13 @@ But the Mummy will appreciate the lack of humidity

取り消したい変更の一個****のコミット番号を使う必要があることを覚えておくことが重要です。
よくある間違いは、破棄しようとしている変更を行ったコミットの番号を使用することです。
In the example below, we want to retrieve the state from before the most
recent commit (`HEAD~1`), which is commit `f22b25e`. We use the `.` to mean all files:
以下の例では、最新のコミットの前 (`HEAD~1`) 、すなわち`f22b25e`から状態を取得したいと考えています: このとき、`.` を使用することで、全てのファイルを対象にします。

![](fig/git-restore.svg){alt='A diagram showing how git restore can be used to restore the previous version of two files'}
![](fig/git-restore.svg){alt='以下の図は、git restoreを使って2つのファイルの前のバージョンを復元する方法を示しています'}

つまり、すべてをまとめると、Gitがどのように機能するかは次の漫画のようになります:

![https://figshare.com/articles/How\_Git\_works\_a\_cartoon/1328266](fig/git_staging.svg){alt='A diagram showing the entire git workflow: local changes are staged using git add, applied to the local repository using git commit, and can be restored from the repository using git checkout'}
![https://figshare.com/articles/How\_Git\_works\_a\_cartoon/1328266](fig/git_staging.svg){alt='以下の図は、Gitの全体的なワークフローを示しています。ローカルでの変更は、git addを使ってステージングされ、git commitでローカルリポジトリに反映されます。また、git checkoutを使用することで、リポジトリから変更を元に戻すことができます。'}

ファイルを1つずつ元に戻すことができるという事実は
人々が研究を整理する方法を変えることがあります。
Expand All @@ -261,24 +253,19 @@ recent commit (`HEAD~1`), which is commit `f22b25e`. We use the `.` to mean all

4. `$ git restore -s <unique ID of last commit> data_cruncher.py`

5. Both 2 and 4
5. 2番と4番の両方

::::::::::::::: solution

## 解答

答えは (5) - 2 と 4 の両方です。

The `restore` command restores files from the repository, overwriting the files in your working
directory. Answers 2 and 4 both restore the _latest_ version _in the repository_ of the file
`data_cruncher.py`. Answer 2 uses `HEAD` to indicate the _latest_, whereas answer 4 uses the
unique ID of the last commit, which is what `HEAD` means.
`restore` コマンドはリポジトリからファイルを復元し、作業ディレクトリのファイルを上書きします。 2番と4番のコマンドはどちらもリ_ポジトリにある_ `data_cruncher.py` の_最新バージョン_を復元します。 2番は `HEAD` を使って_最新バージョン_を指定し、4番は `HEAD` と同じ意味の最後のコミットIDを使います。

Answer 3 gets the version of `data_cruncher.py` from the commit _before_ `HEAD`, which is NOT
what we wanted.
3番のコマンドは、`data_cruncher.py``HEAD` _より前_のコミットから復元するため、今回の目的とは異なります。

Answer 1 results in an error. You need to specify a file to restore. If you want to restore all files
you should use `git restore .`
1番はエラーになります。 復元するファイルを指定する必要があります。 すべてのファイルを復元したい場合は、`git restore .` を使用するべきです。

:::::::::::::::::::::::::

Expand All @@ -290,10 +277,7 @@ you should use `git restore .`

ジェニファーは同僚とPythonスクリプトで共同作業を行っており、グループのリポジトリへの彼女の最新のコミットが間違っていることに気付き、それを元に戻したいと思っています。 ジェニファーは、グループリポジトリのみんなが正しい変更を取得できるように、正しく元に戻す必要があります。 ジェニファーは、グループリポジトリのみんなが正しい変更を取得できるように、正しく元に戻す必要があります。 `git revert [wrong commit ID]` は、ジェニファーの誤ったコミットを元に戻す新しいコミットを作ります。

The command `git revert` is
different from `git restore -s [commit ID] .` because `git restore` returns the
files not yet committed within the local repository to a previous state, whereas `git revert`
reverses changes committed to the local and project repositories.
`git revert``git restore -s [commit ID] .` とは異なります。`git restore` は、ローカルリポジトリ内でまだコミットされていないファイルを以前の状態に戻すために使用されるのに対して、`git revert` はローカルリポジトリおよびプロジェクトリポジトリにコミットされた変更を取り消すために使用されます。

以下は、ジェニファーが`git revert`を使用するための正しい手順と説明ですが、不足しているコマンドは何でしょうか?

Expand All @@ -311,11 +295,9 @@ reverses changes committed to the local and project repositories.

## 解答

The command `git log` lists project history with commit IDs.
`git log` コマンドは、コミットIDを含むプロジェクトの履歴を一覧表示します。

The command `git show HEAD` shows changes made at the latest commit, and lists
the commit ID; however, Jennifer should double-check it is the correct commit, and no one
else has committed changes to the repository.
`git show HEAD` は、最新のコミットで行われた変更を表示し、コミットIDも確認できます。ただし、ジェニファーはこれが正しいコミットであることを再確認し、他の人がリポジトリに変更をコミットしていないか確認する必要があります。

:::::::::::::::::::::::::

Expand Down Expand Up @@ -400,17 +382,15 @@ Venus is beautiful and full of love.

## ステージされた変更の除去

`git restore` can be used to restore a previous commit when unstaged changes have
been made, but will it also work for changes that have been staged but not committed?
Make a change to `mars.txt`, add that change using `git add`,
then use `git restore` to see if you can remove your change.
`git restore` は、ステージされていない変更があったときに 以前のコミットを復元するために使用できます。しかしそれはステージされているがコミットされていない変更に対しても機能するでしょうか?
`mars.txt` に変更を用意し、その変更を加え(`git add`を使い)、`git restore` を使い変更を取り除くことができるかどうか確かめましょう。

::::::::::::::: solution

## 解答

After adding a change, `git restore` can not be used directly.
Let's look at the output of `git status`:
変更を追加した後、`git restore` は直接使用できません。
次に、`git status` の出力を確認してみましょう。

```output
On branch main
Expand All @@ -420,20 +400,16 @@ Changes to be committed:
```

Note that if you don't have the same output
you may either have forgotten to change the file,
or you have added it _and_ committed it.
この出力が表示されない場合、ファイルの変更を忘れているか、すでにファイルを追加してコミットした可能性があります。

Using the command `git restore mars.txt` now does not give an error,
but it does not restore the file either.
Git helpfully tells us that we need to use `git restore --staged` first
to unstage the file:
この時点で、`git restore mars.txt` コマンドを実行してもエラーは発生しませんが、ファイルは元に戻りません。
Gitは、まず `git restore --staged` を使用してステージングエリアからファイルを戻す必要があることを教えてくれます。

```bash
$ git restore --staged mars.txt
```

Now, `git status` gives us:
次に、`git status` の出力を確認します。

```bash
$ git status
Expand All @@ -450,8 +426,7 @@ Changes not staged for commit:
no changes added to commit (use "git add" and/or "git commit -a")
```

This means we can now use `git restore` to restore the file
to the previous commit:
ここで、`git restore` コマンドを使ってファイルを前のコミットの状態に戻すことができます。

```bash
$ git restore mars.txt
Expand Down Expand Up @@ -484,21 +459,19 @@ nothing to commit, working tree clean
$ git log mars.txt
```

Unfortunately some of these commit messages are very ambiguous, e.g., `update files`.
How can you search through these files?
残念ながら、一部のコミットメッセージは `update files`(「ファイルを更新する」)などのように非常に曖昧です。
これらのファイルをどうやって調べたら良いでしょうか?

Both `git diff` and `git log` are very useful and they summarize a different part of the history
for you.
Is it possible to combine both? Let's try the following:
`git diff``git log` はどちらも非常に便利で、それぞれリポジトリの異なる部分の履歴を要約してくれます。
これらを組み合わせることは可能でしょうか? 次のコマンドを試してみましょう:

```bash
$ git log --patch mars.txt
```

You should get a long list of output, and you should be able to see both commit messages and
the difference between each commit.
長い出力が表示され、各コミットメッセージと、そのコミット間での違い(差分)が確認できるはずです。

Question: What does the following command do?
質問: 次のコマンドは何をしますか?

```bash
$ git log --patch HEAD~9 *.txt
Expand All @@ -509,6 +482,6 @@ $ git log --patch HEAD~9 *.txt
:::::::::::::::::::::::::::::::::::::::: keypoints

- `git diff` は、コミット間の違いを表示します。
- `git restore` recovers old versions of files.
- `git checkout` は、ファイルの古いバージョンを復元します。

::::::::::::::::::::::::::::::::::::::::::::::::::

0 comments on commit 4be9842

Please sign in to comment.