Git备忘录
获取GitLab中已上传的分支源代码的方法。
确认在 git status 中没有任何更改
git fetch
切换到 origin/[分支名] 分支并新建 [分支名] 分支。
git checkout -b feature_11_04 origin/feature_11_04
使用git stash命令来进行更改的暂存和显示暂存列表。
git stash
git stash list
删除已还原的stash。
# 最新のstashを復元し、削除
git stash pop
# N番目のstashを復元し、削除
git stash pop stash@{N}
将stash进行恢复,并保留恢复后的stash。
# 最新のstashを復元し、残す
git stash apply
# N番目のstashを復元し、残す
git stash apply stash@{N}
删除第N个stash
# 最新のstashを削除
git stash drop
# N番目のstashを削除
git stash drop stash@{N}
展示显示git stash隐藏代码与当前代码的变更点的命令。
git stash show -p stash@{0}
或者
git show stash
将特定的文件从git中排除。
git rm index.html
确认特定文件的日志和修正内容。
git log -p index.html
创建SSH密钥,并确认与GitHub的SSH连接。
ssh-keygen -t rsa
ssh -T git@github.com
ssh-keygen无论在哪个目录下运行,都会在用户的主目录下创建密钥。
添加、删除和确认别名。
git config --global alias.st status
git config --global --unset alias.st
git config --global --edit
正在进行工作的文件,将通过add命令移到暂存区的文件,全部被丢弃。
将其恢复为与最新提交时的状态相匹配的状态。
git reset --hard
将状态恢复到指定的提交ID。
git reset --hard <commit ID>
从现在起提交的内容(包括日志)全部丢弃。
如果创建了新文件并提交了该文件,那么该文件将被删除。
废弃了指定的提交记录ID之后的提交日志。
禁用在提交ID时的add和commit功能。
对于以下日志的情况,
$ git log --oneline
3a61ab6 12/28(thu) delete config file
5c32ada 12/27(wed) modify config file
abfac40 12/26(tue) add config file
bf0e0fd 12/25(mon) create new project
如果要丢弃abfac40之后的5c32ada和3a61ab6的日志,只需要一种选择。
git reset abfac40
3a61ab6 5c32ada 的 log 将被删除。
3a61ab6 5c32ada 的变更内容将被保存。
在添加(add)之后,确认与最新提交(commit)之间的更改内容(与暂存区文件进行比较)。
git diff --cached
提交修改后的文件(省略 add 命令)。
git commit -a
git commit -a -m "コメント"
如果想要编辑或修改最新提交的注释,那么
git commit --amend
如果要修改在Github上push的提交评论
git commit --amend
(エディタが立ち上がるのでコメント修正する)
git push -f origin master
(強制的にpushして最新のコメントを上書き)
如果想要撤销在Github上推送的文件的情况
git reset --hard <commit ID>
(指定されたコミットIDの状態に戻す)
git push -f origin master
(強制的にpushされた内容を削除する)
或者 (huò zhě)
git revert <commit ID>
git push origin master
回退操作会在日志中记录撤销了提交。
重置操作并强制推送的方法不会保留撤销记录。
如果要在最近的提交中添加或修改文件。
git add <追加・修正したファイル名>
git commit --amend --no-edit
# --no-editでコミットメッセージは変更しない。コミットIDは更新される。
或者
git reset HEAD^
git add .
git commit
^ 的意思是指的是一个之前的版本。指定最新提交的前一个版本。
^^ 表示两个版本之前。也可以用 ~2。 HEAD~5 表示HEAD的前五个提交。
输出两个commit之间的差异
git diff <コミットID1> <コミットID2>
从当前分支的状态输出差异。
git diff <コミットID1>
获取在两个commit之间有差异的文件名列表。
git diff --name-only <コミットID1> <コミットID2>
指定文件以输出两个提交之间的差异。
# ファイル名一覧取得
git diff --name-only <コミットID1> <コミットID2>
# ファイル名を指定して差分出力
git diff <コミットID1> <コミットID2> <ファイル名>
只提交特定文件
# 「--」は無くても可
git commit -m 'add' -- hoge.txt