Git 笔记

设置 (shè

制作钥匙

在进行创建之前确认有无。

ls -la ~/.ssh/

制作钥匙

ssh-keygen -t rsa
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/(username)/.ssh/id_rsa):id_github_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

权力

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa

设置公钥

id_dsa是私钥,而id_dsa.pub是公钥。

将公钥传输到服务器

scp .ssh/id_rsa.pub user@server:

~/.ssh/configを作成しその中に

服务器端的工作

## 公開鍵のセット
cat id_rsa.pub >>  .ssh/authorized_keys
rm  id_rsa.pub

#パーミッションの設定
chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

权限信息总结

クライアント側の .ssh/id_rsa のパーミッション (600)
サーバー側のホームディレクトリのパーミッション (755)
サーバー側の .ssh ディレクトリのパーミッション (700)
サーバー側の .ssh/authorized_keys のパーミッション (600)

SSH配置

Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_git_rsa #ここに自分の鍵のファイル名
  User git
ssh -T github

对于SSH,可以选择这里。

~/.gitconfig
[url "github:"]
    InsteadOf = https://github.com/
    InsteadOf = git@github.com:

设置Git配置

git config --global user.name "your name"
git config --global user.email "your email address"
git config --global http.proxy "your proxy host if needed"
# 日本語文字化け対応
git config --global core.quotepath false
git config core.editor "your prefferd editor"

# 確認
git config --list

进行操作

从fork(分叉)到提交Pull Request(拉取请求)的过程。

在团队合作时,不要直接从项目存储库(上游)创建分支,而是先进行分叉,然后再创建分支。将推送操作执行到自己的存储库,并向上游提交拉取请求。

upstream:フォーク元、プロジェクトのレポジトリ
origin:フォーク先、自分のアカウントにフォークしてきたのレポジトリ
local:クローン先、自分のローカルにクローンしたレポジトリ

克隆

将存储库克隆到本地。

git clone <repository>

上游的配置

git remote add upstream <repository>
git branch -a
git fetch upstream
git pull upstream master

切下分支进行工作

git checkout -b ブランチ名

将页面恢复到结账之前的状态。

git reset --hard

确认状态

git status

提交

git add ファイル名
git commit -m <title>

撤销提交

git commit --amend
git commit --amend -m <title>

将更改推送到我个人账户的派生仓库。

git push origin <branch>

里化

git revert <commit>

取消推送

git log --oneline
git reset --hard コミット番号
git push -f origin <branch>

请提供创建Pull Request的步骤。

在源项目仓库中,通过fork到我的账户的仓库,生成一个拉取请求。

请给我来一杯。

# upstreamからのプル
git pull upstream master

# originからのプル
git pull origin master

胡子

# 現在の作業保存
git stash

# ブランチ移動後作業を終えた後、元の作業ブランチに戻り、以下作業中の状況に戻れる
git stash apply

# stashのリストを見る
git stash list

撤销三个提交的重置

# ワーキングディレクトリはそのままでステージとコミットをリセット
git reset <commit>

# ワーキングディレクトリもステージもそのままでコミットだけリセット
git reset --soft <commit>

# ワーキングディレクトリ, ステージ, コミットの全てをリセット
git reset --hard <commit>

更改分支名称

git branch -m <oldname> <newname>

确认自己一周的提交记录。

git log --pretty=format:"%h - %an, %ad (%ar) : %s" --since=1.weeks --author="Toshifumi Kurosawa"

创建一个空的拉取请求

# 空のコミット
git commit --allow-empty -m "<title>"

# リモートブランチに push
git push origin <branch>

# リモートブランチと紐付け
git branch -u origin/<branch>

# ローカルブランチがどのリモートブランチと紐付いているか確認
git branch -vv

化名

alias ga='git add'
alias gaa='git add .'
alias gaaa='git add -A'
alias gb='git branch'
alias gbd='git branch -d '
alias gc='git commit'
alias gcm='git commit -m'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcod='git checkout develop'
alias gcom='git checkout master'
alias gd='git diff'
alias gda='git diff HEAD'
alias gg='alias | grep git'
alias gi='git init'
alias gitkeep='find . -type d -empty -not -path "./.git/*" -exec touch {}/.gitkeep \;'
alias gitremove='find ./ -name .git | xargs sudo rm -rf'
alias gl='git log'
alias gld='git log --pretty=format:"%h %ad %s" --date=short --all'
alias glg='git log --graph --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" --abbrev-commit --date=relative'
alias glga='git log --graph --all --pretty=format:"%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset" --abbrev-commit --date=relative'
alias glp='git log -p'
alias gm='git merge --no-ff'
alias gp='git pull'
alias gpom='git push origin master'
alias grh='git reset --hard'
alias gs='git status'
alias gss='git status -s'
alias gst='git stash'
alias gstd='git stash drop'
alias gstl='git stash list'
alias gstp='git stash pop'
alias podRepoRemoveMaster='git conf
5.コミットの順番を間違えちゃった! -- コミットログの並べ替えと削除
エディタが立ち上がるので並べ替えたり削除したりしましょう。
push前にログを整理するのによく使われます。
$ git rebase -i <commit>
6.コミット細かすぎィ! -- コミットログの統合と編集
まずはエディタを立ち上げます。
$ git rebase -i <commit>
親コミットに統合したい子コミットのpickをfixupに書き換えます。
コミットメッセージを編集したいコミットはpickをeditにします。
pick xxxxxx parent
fixup yyyyyy child
edit zzzzzz hoge
7.あのコミットさえあれば…! -- 他のブランチのコミットを適用する
リベースだと都合が悪いときに使います。
$ git cherry-pick <commit>
8.やばい!ハードリセットしたら消えちゃった! -- 過去の状態の復元
落ち着いてください。全ての操作は記録されています。
ログから親コミットを指定してハードリセットします。
$ git reflog
zzzzzz HEAD@{0}: reset: moving to <commit>
yyyyyy HEAD@{1}: foo
xxxxxx HEAD@{2}: hoge
$ git reset --hard HEAD@{1}
9.masterにマージ後にバグ発生!どうする!? -- コミットを打ち消すコミット
revertして修正後に再度マージしましょう。
revertはコミットログに残ります。
$ git revert <commit>
初心者から一歩抜け出すためのGitの業 〜 git reflog
广告
将在 10 秒后关闭
bannerAds