Git速查表

给Git速查表添加补充内容。

只提交特定的文件

在之后,通过空格分隔指定文件。

git commit -m "update" -- foo.cpp hoge.cpp

.gitignore的格式编写

(参考来源)

# "#" で始まる行はコメント
*.exe # 拡張子exeは無視
bin/  # binの中身は無視
!/bin/readme.txt # ただし/bin/readme.txtは含める
package/**/*.xml # packageフォルダ内の拡張子xmlのファイルは無視
*local_back/     # 階層にかかわらずlocal_backという名前のフォルダをすべて除外する

让.gitignore生效

在执行git add .等操作后,如果更新了.gitignore文件,需要按照以下方法进行:
在不删除本地文件的情况下,删除git的缓存。(来源)

git rm -r --cached .          //ファイル全体キャッシュ削除
git rm -r --cached [ファイル名]  //ファイル指定してキャッシュ削除

在最后一次提交中添加更改变动。

(来源)

$ git add . 
$ git commit --amend --no-edit

修改提交消息

更改最新提交的消息。(出典)

git commit --amend -m "new comment"

修改两个以上以前的提交消息。(引用)

$ git rebase -i HEAD~2
pick <コミット1のhash> update hoge.cpp
pick <コミット2のhash> 古いコメント
// 以下に書き換える
pick <コミット1のhash> update hoge.cpp
edit <コミット2のhash> 新しいコメント
$ git commit --amend 
$ git rebase --continue

撤销提交

git reset --soft HEAD^ // ローカルファイルには影響しない
git reset --hard HEAD^ // ローカルファイルもコミット前に戻す

撤销首次提交

可以使用这种方法来撤销首次提交,但不仅仅限于首次提交的情况。 (出处)

git update-ref -d HEAD

取消撤销提交。

使用git reflog命令查看内容,并选择要撤销的地点。(引用)

$ git reflog
4231432 HEAD@{1}: reset: moving to HEAD^
5432554 HEAD@{2}: commit: update foo
5432656 HEAD@{3}: commit: update bar
$ git reset --soft HEAD@{1}

调整提交的顺序

(来源)

// 過去3つ分のコミットを表示
$ git rebase -i HEAD~3
pick <コミット1のhash> update hoge.cpp
pick <コミット2のhash> update fuga.cpp
pick <コミット3のhash> update piyo.cpp
// コミット2とコミット3を入れ替える
edit <コミット1のhash> update hoge.cpp
pick <コミット3のhash> update piyo.cpp
pick <コミット2のhash> update fuga.cpp
// 保存して完了

将提交合并

$ git rebase -i HEAD~3
pick <コミット1のhash> update hoge.cpp
pick <コミット2のhash> update fuga.cpp
pick <コミット3のhash> update piyo.cpp
// コミット2にコミット3を統合する
pick <コミット1のhash> update hoge.cpp
pick <コミット2のhash> update fuga.cpp
fixup <コミット3のhash> update piyo.cpp
// 保存して完了

回溯到之前的多个提交并重新编写历史记录。

(来源)

$ git rebase -i HEAD~3
pick <コミット1のhash> update hoge.cpp
pick <コミット2のhash> update fuga.cpp
pick <コミット3のhash> update piyo.cpp
// さかのぼりたいコミットのpickをeditに変更して保存
edit <コミット1のhash> update hoge.cpp
pick <コミット2のhash> update fuga.cpp
pick <コミット3のhash> update piyo.cpp
$ git add hoge.cpp     
$ git commit --amend    // 新しいhoge.cppの変更をコミット1に加える
$ git rebase --continue // コミット1の書き換えが完了

更改Commiter和Author

(来源)

将其反映在后续的提交中

更改Commiter

git config --local user.name "your-name"
git config --local user.email "foo@example.com"
git commit --amend

更改作者

git commit --amend --author="your-name <foo@example.com>"
git rebase --continue
git push -f

将所有之前的提交更改

git filter-branch -f --env-filter "GIT_AUTHOR_NAME='your-name'; GIT_AUTHOR_EMAIL='foo@example.com'; GIT_COMMITTER_NAME='your-name'; GIT_COMMITTER_EMAIL='foo@example.com';" HEAD 
广告
将在 10 秒后关闭
bannerAds