Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/add zh tw language #135

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions _data/site.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,11 @@ module.exports = {
code: "fi",
arialabel: "Valitse kieli",
},
{
label: "正體中文",
code: "zh-TW",
arialabel: "其他語言",
},
],
collaborators: [
{
Expand Down Expand Up @@ -290,6 +295,11 @@ module.exports = {
link: "https://github.com/sjarva",
lang: "fi",
},
{
name: "Shiro Kyo",
link: "https://github.com/TSOTSI1",
lang: "zh-TW",
},
],
otherhelpers: [
{
Expand Down
6 changes: 6 additions & 0 deletions zh-TW/noswears/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
layout: layouts/page.njk
locale: zh-TW
contentType: noswears
title: Dangit, Git!?!
---
5 changes: 5 additions & 0 deletions zh-TW/noswears/partials/footer.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<footer>
<small class="contact">你在使用 git 時是否也有類似抓狂的經歷? 可以與我分享一下!</small>
<small class="twitter">{% twitter_link "ksylor" %}</small>
<small class="copyright">{{site.copyright | safe}}</small>
</footer>
3 changes: 3 additions & 0 deletions zh-TW/noswears/partials/intro.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<p>用好 Git 很難: 很容易就犯錯了,然後想自己彌補犯下的錯,簡直太難了。查閱 Git 文檔簡直就像是個 “雞生蛋 蛋生雞” 的問題,<em>你得知道你要的是啥</em> ,但問題就在於我不知道呀! </p>

<p>所以接下來我會分享一些我遇到過的抓狂的經歷,然後用 <em>白話</em> 來說說我是如何解決的。 </p>
1 change: 1 addition & 0 deletions zh-TW/noswears/partials/outro.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<p>*免責聲明: 本網站並不是一個詳盡完整的參考文檔。當然,我知道還有很多其他更優雅的方法能達到相同的效果,但我是通過不斷的嘗試、不停的吐槽最終解決了這些問題。接著我就有了這個奇妙的想法,通過這樣方式,使用一些白話來分享我的經歷和發現。希望你也覺得這很有意思,但如果你不能接受的話請移步別處。 </p>
4 changes: 4 additions & 0 deletions zh-TW/noswears/partials/thanks.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<p>非常感謝每一位為網站添加新語言翻譯的人,你們真的太棒了!
{% include "partials/collaborator-list.njk" %}. With additional help from {% include "partials/otherhelper-list.njk" %}</p>

<p>如果你也想為網站添加一個新語言, 可以在這裡提交 PR {% github_link %}</p>
21 changes: 21 additions & 0 deletions zh-TW/noswears/tips/01-magic-time-machine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
tags: tip
title: 噢,糟了,我剛才好像犯了個大錯,能不能給我台時光機啊!?!
id: magic-time-machine
order: 1
---

```git
git reflog
# 你將看到你在 git 上提交的所有改動記錄被列
# 了出來,而且囊括了所有的分支,和已被刪除的
# commit 哦!
# 每一條記錄都有一個類似 HEAD@{index} 的索
# 引編號
# 找到在犯錯前的那個提交記錄的索引號,然後執
# 行:
git reset HEAD@{index}
# 哈哈,這就是你要的時光機!
```

你可以用這個方法來找回那些你不小心刪除的東西、恢復一些你對 repo 改動、恢復一次錯誤的 merge 操作、或者僅僅想退回到你的項目還能正常工作的那一時刻。我經常使用 `reflog`,在此我要向那些提案添加這個功能的人們表示感謝,太謝謝他們了!
18 changes: 18 additions & 0 deletions zh-TW/noswears/tips/02-change-last-commit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
tags: tip
title: 噢,糟了,我剛提交 commit 就發現還有一個小改動需要添加!
id: change-last-commit
order: 2
---

```git
# 繼續改動你的文件
git add . # 或者你可以添加指定的文件
git commit --amend --no-edit
# 你這次的改動會被添加進最近一次的 commit 中
# 警告: 千萬別對公共的 commit 做這種操作
```

這經常發生在我提交了 commit 以後立馬發現,哎呀,我忘了在某個等號後面加空格了。當然,你也可以提交一個新的 commit 然後利用 `rebase -i` 命令來合併它們,但我覺得我的這種方式比你快 100 萬倍。

*警告: 你千萬不要在已推送的公共分支上做這個 amend 的操作! 只能在你本地 commit 上做這種修改,否則你會把事情搞砸的! *
12 changes: 12 additions & 0 deletions zh-TW/noswears/tips/03-change-last-commit-message.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
tags: tip
title: 噢,糟了,我要修改我剛剛 commit 提交的信息!
id: change-last-commit-message
order: 3
---
```git
git commit --amend
# 按照提示修改信息就行啦
```

使用繁瑣的提交信息格式
17 changes: 17 additions & 0 deletions zh-TW/noswears/tips/04-accidental-commit-master.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
tags: tip
title: 噢,糟了,我不小心把本應在新分支上提交的東西提交到了 master!
id: accidental-commit-master
order: 4
---

```git
# 基於當前 master 新建一個分支
git branch some-new-branch-name
# 在 master 上刪除最近的那次 commit
git reset HEAD~ --hard
git checkout some-new-branch-name
# 只有在這個新分支上才有你最近的那次 commit 哦
```

注意:如果你已將這個 commit 推送到了公共分支,那這波操作就不起作用了。如果你在此之前做了些其他的操作,那你可能需要使用 `HEAD@{number-of-commits-back}` 來替代 `HEAD~`。另外,感謝很多人提出了這個我自己都不知道的超棒的解決方法,謝謝大家!
29 changes: 29 additions & 0 deletions zh-TW/noswears/tips/05-accidental-commit-wrong-branch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
tags: tip
title: 噢,糟了,我把這個 commit 提交錯分支了!
id: accidental-commit-wrong-branch
order: 5
---

```git
# 撤回這次提交,但保留改動的內容
git reset HEAD~ --soft
git stash
# 現在切到正確的那個分支去
git checkout name-of-the-correct-branch
git stash pop
git add . # 或者你可以添加指定的文件
git commit -m "your message here";
# 現在你的改動就在正確的分支上啦
```

很多人建議使用 `cherry-pick` 來解決這個問題,其實兩者都可以,你只要選擇自己喜歡的方式就行了。

```git
git checkout name-of-the-correct-branch
# 抓取 master 分支上最新的那個 commit
git cherry-pick master
# 然後刪掉 master 上的那個 commit
git checkout master
git reset HEAD~ --hard
```
14 changes: 14 additions & 0 deletions zh-TW/noswears/tips/06-dude-wheres-my-diff.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
tags: tip
title: 噢,糟了,我想用 diff 命令看下改動內容,但啥都沒看到?!
id: dude-wheres-my-diff
order: 6
---

如果對文件做了改動,但是通過 `diff` 命令卻看不到,那很可能是你執行過 `add` 命令將文件改動添加到了 `暫存區` 了。你需要添加下面這個參數。

```git
git diff --staged
```

這些文件在這裡 &macr;\\\_(ツ)\_/&macr; (是的,我知道這是一個 feature 而不是 bug,但它第一次發生在作為初學者的你身上時,真的很讓人困惑!)
22 changes: 22 additions & 0 deletions zh-TW/noswears/tips/07-undo-a-commit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
tags: tip
title: 噢,糟了,我想撤回一個很早以前的 commit!
id: undo-a-commit
order: 7
---

```git
# 先找到你想撤銷的那個 commit
git log
# 如果在第一屏沒找到你需要的那個 commit,可以用上下
# 箭頭來滾動顯示的內容,找到了以後記下 commit 的
# hash 值
git revert [剛才記下的那個 hash 值]
# git 會自動修改文件來抵消那次 commit 的改動,並創
# 建一個新的 commit,你可以根據提示修改這個新 commit
# 的信息,或者直接保存就完事了
```

這樣你就不需要用回溯老版本然後再复制粘貼的方式了,那樣做太費事了!如果你提交的某個 commit 導致了 bug,你直接用 `revert` 命令來撤回那次提交就行啦。

你甚至可以恢復單個文件而不是一整個 commit!但那是另一套 git 命令咯...
19 changes: 19 additions & 0 deletions zh-TW/noswears/tips/08-undo-a-file.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
tags: tip
title: 噢,糟了,我想撤回某一個文件的改動!
id: undo-a-file
order: 8
---

```git
# 找到文件改動前的那個 commit
git log
# 如果在第一屏沒找到你需要的那個 commit,可以用上下
# 箭頭來滾動顯示的內容,找到了以後記下 commit 的
# hash 值
git checkout [剛才記下的那個 hash 值] -- path/to/file
# 改動前的文件會保存到你的暫存區
git commit -m "這樣就不需要通過複製貼上來撤回改動啦"
```

我花了好長好長時間才搞明白要這麼做。說真的,用 `checkout --` 來撤回一個文件的改動,這真是太奇葩了?! :向 Linus Torvalds 擺出抗議姿勢:
29 changes: 29 additions & 0 deletions zh-TW/noswears/tips/20-fuck-this-noise.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
tags: tip
title: 這些亂七八糟的文件太煩人了, 我放棄啦。 (那些 untracked 的文件)
id: fuck-this-noise
note: this should always be the last one in the list, so setting order to 20 so I don't have to re-name/re-order it
order: 20
---

```git
cd ..
sudo rm -r fucking-git-repo-dir
git clone https://some.github.url/fucking-git-repo-dir.git
cd fucking-git-repo-dir
```

感謝 Eric V. 提供了這個事例,如果對 `sudo` 的使用有什麼的質疑的話,可以去向他提出。


不過說真的,如果你的分支真的這麼糟糕的話,你應該使用 "git-approved" 的方法來重置你的 repo,可以試試這麼做,但要注意這些操作都是破壞性的,不可逆的!

```git
# 獲取遠端庫最新的狀態
git fetch origin
git checkout master
git reset --hard origin/master
# 刪除 untracked 的文件和目錄
git clean -d --force
# 對每一個有問題的分支重複上述 checkout/reset/clean 操作
```
1 change: 1 addition & 0 deletions zh-TW/noswears/tips/tips.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{ "permalink": false }
6 changes: 6 additions & 0 deletions zh-TW/swears/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
layout: layouts/page.njk
locale: zh-TW
contentType: swears
title: Oh Shit, Git!?!
---
1 change: 1 addition & 0 deletions zh-TW/swears/partials/banner.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<aside class="notice">嗨! 如果您不喜歡髒話,可以瀏覽這個 “河蟹” 版本 <a href="{{site.url_noswears}}/{{locale}}">dangitgit.com</a></aside>
5 changes: 5 additions & 0 deletions zh-TW/swears/partials/footer.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<footer>
<small class="contact">你在使用 git 時是否也有類似抓狂的經歷? 可以與我分享一下! </small>
<small class="twitter">{% twitter_link "ohshitgit" %} {% twitter_link "ksylor" %}</small>
<small class="copyright">{{site.copyright | safe}}</small>
</footer>
3 changes: 3 additions & 0 deletions zh-TW/swears/partials/intro.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<p>用好 Git 很難: 很容易就犯錯了,然後想自己彌補犯下的錯,簡直太難了。查閱 Git 文檔簡直就像是個 “雞生蛋 蛋生雞” 的問題,<em>你得知道你要的是啥</em> ,但如果我知道的話,我還他媽查三小文檔啊! </p>

<p>所以接下來我會分享一些我遇到過的抓狂的經歷,然後用 <em>白話</em> 來說說我是如何解決的。 </p>
1 change: 1 addition & 0 deletions zh-TW/swears/partials/outro.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<p>*免責聲明: 本網站並不是一個詳盡完整的參考文檔。當然,我知道還有很多其他更優雅的方法能達到相同的效果,但我是通過不斷的嘗試、不停的吐槽最終解決了這些問題。接著我就有了這個奇妙的想法,通過這樣方式,使用一些比較詼諧的髒話來分享我的經歷和發現。希望你也覺得這很有意思,但如果你不能接受的話請移步別處。 </p>
4 changes: 4 additions & 0 deletions zh-TW/swears/partials/thanks.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<p>非常感謝每一位為網站添加新語言翻譯的人,你們真的太棒了!
{% include "partials/collaborator-list.njk" %}. With additional help from {% include "partials/otherhelper-list.njk" %}</p>

<p>如果你也想為網站添加一個新語言, 可以在這裡提交 PR {% github_link %}</p>
21 changes: 21 additions & 0 deletions zh-TW/swears/tips/01-magic-time-machine.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
tags: tip
title: 喔幹,我剛才好像犯了個大錯,能不能給我台時光機啊!?!
id: magic-time-machine
order: 1
---

```git
git reflog
# 你將看到你在 git 上提交的所有改動記錄被列
# 了出來,而且囊括了所有的分支,和已被刪除的
# commit 哦!
# 每一條記錄都有一個類似 HEAD@{index} 的索
# 引編號
# 找到在犯錯前的那個提交記錄的索引號,然後執
# 行:
git reset HEAD@{index}
# 哈哈,這就是你要的時光機!
```

你可以用這個方法來找回那些你不小心刪除的東西、恢復一些你對 repo 改動、恢復一次錯誤的 merge 操作、或者僅僅想退回到你的項目還能正常工作的那一時刻。我經常使用 `reflog`,在此我要向那些提案添加這個功能的人們表示感謝,太謝謝他們了!
18 changes: 18 additions & 0 deletions zh-TW/swears/tips/02-change-last-commit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
tags: tip
title: 喔幹,我剛提交 commit 就發現還有一個小改動需要添加!
id: change-last-commit
order: 2
---

```git
# 繼續改動你的文件
git add . # 或者你可以添加指定的文件
git commit --amend --no-edit
# 你這次的改動會被添加進最近一次的 commit 中
# 警告: 千萬別對公共的 commit 做這種操作
```

這經常發生在我提交了 commit 以後立馬發現,媽的,我忘了在某個等號後面加空格了。當然,你也可以提交一個新的 commit 然後利用 `rebase -i` 命令來合併它們,但我覺得我的這種方式比你快 100 萬倍。

*警告: 你千萬不要在已推送的公共分支上做這個 amend 的操作! 只能在你本地 commit 上做這種修改,否則你會把事情搞砸的! *
12 changes: 12 additions & 0 deletions zh-TW/swears/tips/03-change-last-commit-message.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
---
tags: tip
title: 喔幹,我要修改我剛剛 commit 提交的信息!
id: change-last-commit-message
order: 3
---
```git
git commit --amend
# 按照提示修改信息就行啦
```

使用繁瑣的提交信息格式
17 changes: 17 additions & 0 deletions zh-TW/swears/tips/04-accidental-commit-master.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
tags: tip
title: 喔幹,我不小心把本應在新分支上提交的東西提交到了 master!
id: accidental-commit-master
order: 4
---

```git
# 基於當前 master 新建一個分支
git branch some-new-branch-name
# 在 master 上刪除最近的那次 commit
git reset HEAD~ --hard
git checkout some-new-branch-name
# 只有在這個新分支上才有你最近的那次 commit 哦
```

注意:如果你已將這個 commit 推送到了公共分支,那這波操作就不起作用了。如果你在此之前做了些其他的操作,那你可能需要使用 `HEAD@{number-of-commits-back}` 來替代 `HEAD~`。另外,感謝很多人提出了這個我自己都不知道的超棒的解決方法,謝謝大家!
29 changes: 29 additions & 0 deletions zh-TW/swears/tips/05-accidental-commit-wrong-branch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
tags: tip
title: 喔幹,我把這個 commit 提交錯分支了!
id: accidental-commit-wrong-branch
order: 5
---

```git
# 撤回這次提交,但保留改動的內容
git reset HEAD~ --soft
git stash
# 現在切到正確的那個分支去
git checkout name-of-the-correct-branch
git stash pop
git add . # 或者你可以添加指定的文件
git commit -m "your message here";
# 現在你的改動就在正確的分支上啦
```

很多人建議使用 `cherry-pick` 來解決這個問題,其實兩者都可以,你只要選擇自己喜歡的方式就行了。

```git
git checkout name-of-the-correct-branch
# 抓取 master 分支上最新的那個 commit
git cherry-pick master
# 然後刪掉 master 上的那個 commit
git checkout master
git reset HEAD~ --hard
```
Loading