第一次使用git命令

首先

这是一个在2020年8月入职的新工程师。

因为git命令很复杂,所以我决定使用SourceTree…
一直以来都在使用SourceTree…

一个月前的时候,我遇到了一个前辈。

「禁止使用SourceTree!!!在不熟悉Git命令之前,至少需要一年時間熟練Git操作!!!!!!!」

非常感谢您的鼓励和指导(实际上您的话更温和一些)。我打算将我以前使用的Git命令和用法等记录下来作为备忘录。

远程存储库的网址
https://github.com/◯◯◯◯/◯◯◯◯.git

开发分支
一个从主分支(master)切出来的分支。将工作分支合并到这里。

自己的工作分支
功能/测试
从开发分支新建的分支。用于添加或修正功能。

将远程仓库的源代码克隆到本地【git clone】。

$ git clone https://github.com/◯◯◯◯/◯◯◯◯.git

直到将代码推送到远程仓库…

// developmentブランチで
$ git checkout -b feature/test

// 現在のブランチの確認
$ git branch

// ステージングに追加・コミット
$ git add .
$ git commit -m 'コミットメッセージ'

// ブランチを移動
$ git checkout development

// リモートリポジトリとの差分を確認
$ git fetch

// リモートのdevelopmentの最新ソースをローカルのdevelopmentにプル
$ git pull origin development

// 作業ブランチに移動
$ git checkout feature/test

// ローカルのdevelopmentブランチのソースをfeature/testブランチにマージ
$ git merge development

// コンフリクトしていないか確認
$ git status

// リモートリポジトリにプッシュ
$ git push origin feature/test

// Github上でプルリクエストを作成!
// Githubからdevelopmentにマージしたら、リモートのdevelopmentも最新にしておく
$ git checkout development
$ git pull origin development

提交后,我从前辈那里学到了如何安全地将更改推送到远程分支。

列出本地分支【git branch】。

我现在在哪个本地分支?
用于确认我当前所在的分支。

$ git branch
// 実行後
* development
  feature/test

当前分支是有「*」的地方。

“【git branch -r】显示远程分支”

使用-r或–remotes选项。

$ git branch -r
$ git branch --remotes

【git branch -a】显示所有本地和远程分支。

在命令后加上 -a 或 –all 选项。

$ git branch -a
$ git branch --all

创建并切换到一个新的分支:【git checkout -b】

由于将从当前分支切换到新分支,请确保知道当前分支是哪个。

$ git checkout -b feature/test

$ git branch
// 実行後
  development
* feature/test

将远程分支提取到本地并切换到该分支。

如果要将远程存储库的new_branch分支拉到本地

$ git checkout -b new_branch origin/new_branch

$ git branch
// 実行後
  development
  feature/test
* new_branch // リモートのブランチが追加されている

将编辑、添加或删除的文件添加到暂存区【git add】。

添加要提交的文件。

将所有已更改的文件添加到暂存区。

$ git add .

我希望为每个文件添加到暂存区。

$ git add welcome.blade.php

将添加到暂存区的文件记录到本地仓库【git commit】。

在查看 git log 中的提交历史时,
要写出能够一眼看出做了什么的消息!

$ git commit -m 'コミットメッセージ'
// 実行後
[development fbcdc2f] コミットメッセージ
 1 file changed, 1 insertion(+), 1 deletion(-)

【git checkout [分支名称]】移动到指定分支。

当您想切换到其他分支时,请执行以下操作。

$ git branch
// 実行後
  development
* feature/test // 現在のブランチ

$ git checkout development

$ git branch
// 実行後
* development // 現在のブランチ 「*」が移動している
  feature/test

从远程存储库获取最新的信息

本地存储库的 origin/development 分支已更新为最新版本。
在此时,我的工作文件等不会被更改。

$ git fetch

【git merge】将获取的最新信息合并到当前分支中。

进行 git fetch 后更新最新信息。
执行到这一步,会同时更改自己的工作文件。

$ git merge origin/development

git pull命令用于将远程库的最新源代码拉取到本地库中。

我一次性执行了git fetch和git merge。

$ git pull origin development

显示自上一次提交以来的更改内容【git status】。

我添加过吗?
我提交过吗?
现在是什么状态?
用于确认时使用。

在执行git add之前↓

$ git status
// 実行後
On branch development
Your branch is up to date with 'origin/development'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   Test/resources/views/welcome.blade.php

no changes added to commit (use "git add" and/or "git commit -a")

在git add之后,git commit之前在下方。

$ git status
// 実行後
On branch development
Your branch is up to date with 'origin/development'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	modified:   Test/resources/views/welcome.blade.php

将在本地仓库提交的历史记录上传到远程仓库。

$ git push origin feature/test
  .
  .
  .
  * [new branch]      feature/test -> feature/test

如果没有错误的话,就可以在Github上创建拉取请求。
请进行审查,如果OK的话就请你从Github上合并到development分支。

检查这个git仓库的提交记录。

在列表中显示提交消息。

$ git log
// 実行後
commit 1ab995b929ff92a4d180d7d0786e0f6496c884dd (origin/feature/test)
Author: emika_0402 <emika_0402@test.co.jp>
Date:   Mon Dec 21 12:00:00 2020 +0900

    コミットメッセージ

当您希望以一行显示提交历史时,请使用以下方法↓

$ git log --oneline
// 実行後
1ab995b (origin/feature/test) コミットメッセージ

放弃暂存前的本地修改【git checkout】。

放弃所有更改↓

$ git checkout .

放弃对指定文件的修改。

$ git checkout Test/resources/views/welcome.blade.php

【git branch -m】修改本地分支名称

$ git branch
* development
  feature/test

// feature/test を feature/test2 にしたい
$ git branch -m feature/test feature/test2

$ git branch
* development
  feature/test2

【git branch -d】删除本地分支

删除已合并的本地分支时↓

删除已合并的本地分支时↓

$ git branch -d feature/test

无论哪个分支都可以删除↓

$ git branch -D feature/test

将不想提交的更改暂存。

我正在进行作业,但是想切换到另一个分支…
因为我在错误的分支上进行了作业,所以想把更改移到另一个分支上…

$ git stash
// 実行後
Saved working directory and index state WIP on 作業ブランチ名: 親コミットID 親コミットメッセージ

使用【git stash save】命令将带注释的更改暂存起来。

$ git stash save 'コメント'
// 実行後
Saved working directory and index state On 作業ブランチ名: コメント

希望将新文件存储在git stash中。

$ git stash -u

用带有注释的【git stash save -u】命令,想要临时保存带有新文件的修改。

$ git stash save -u 'コメント'

我只想要将特定的文件推到【git stash】。

$ git stash push -- ファイル名

【git过程列表】查看已存储的内容列表

stash@{0}被视为stash的标识符,代表最新的stash。

$ git stash list
// 実行後
stash@{0}: WIP on branch3: 789ijkl third commit
stash@{1}: WIP on branch2: 456efgh second commit
stash@{2}: WIP on branch1: 123abcd first commit

【使用git stash apply命令】将被暂存的更改还原到当前分支上

// 直前の変更(stash@{0})を戻す
$ git stash apply

// 特定のstashを指定して戻す
$ git stash apply stash@{2}

【git stash drop】删除被临时储存的更改

// 直前の変更(stash@{0})を削除する
$ git stash drop

// 特定のstashを指定して削除する
$ git stash drop stash@{2}

【git stash pop】将已隐藏的更改恢复到当前分支并从列表中移除

一起完成git stash apply和git stash drop的操作。

// 直前の変更(stash@{0})を戻す
$ git stash pop

// 特定のstashを指定して戻す
$ git stash pop stash@{1}

【git stash clear】清除所有备份的变更

当您希望删除“git stash list”所显示的所有内容时。

$ git stash clear

最后… …)

我希望能够不断增加新使用的git命令!

广告
将在 10 秒后关闭
bannerAds