由Git初学者撰写的Git入门和功能摘要
命令速查表
让我们以例子整理一下常用命令的命令名称和使用方法。
branch
$ git branch <ブランチ名>
$ git branch sub
“sub”という新ブランチを作成checkout$ git checkout <ブランチ名>
$ git checkout sub
“sub”というブランチに切り替えfetch$ git fetch <リモート名>
$ git fetch origin
merge
$ git merge <リモート名>/<ブランチ名>
$ git merge origin/master
〃
$ git merge <ブランチ名>
“$ git merge master
(リモート名は省略可能)将创建的分支名推送到origin(远程仓库)。
1. 如何将代码推送到GitHub上。
当想要将更改推送至主分支时
将本地的主分支名称从 master 改为 main
$ git branch -m master main
当你想要创建一个新的分支并进行推送时,在输入以下命令后,将会创建一个新的分支!
$ git checkout -b <分支名>
6 $ git push origin <分支名>
分支名默认为main
(以前为master,请注意!)
输入”$ git pull –rebase origin master”,然后执行git push就可以了!
将分支注册到远程(+α)
推送到远程仓库,设置为默认提交到创建的分支。
2. 命令摘要
创建一个名为2-x的git分支
Git是一种版本管理工具,但要掌握版本管理的核心,需要理解分支的概念。
“分支是指向提交的指针。也就是说,版本控制就是通过这个指针来进行的,只需切换指针就能完成管理,因此速度非常快!(在Git出现之前的版本控制工具大多记录变更差异,所以很重)。”
默认分支是master,但可以通过以下方式创建新分支。
$ git branch <ブランチ名>
$ git branch只会显示已存在的分支
$ git branch -a会显示包括远程的所有分支名称
分支名称更改:使用$ git branch -m <分支名称>,将当前使用的分支更改为输入的分支名称。(m代表move的首字母)
分支删除:使用$ git branch -d <分支名称>,可以删除指定的分支
(如果想要强制删除,可以使用 -D !)
切换到2-x分支:git checkout 2-x
使用git checkout命令可以实现分支的切换。(对于多人开发来说,分支是必不可少的,因此记住checkout命令也是必要的。)
-
- オプションとしては-bが便利(bは、branchの頭文字)
-
- このオプションを加えて、git checkout -b <ブランチ名>と入力すると、
- ブランチを新規作成したうえで、そのブランチに移動することができる!
合并 2-x 更改历史的 git merge
执行合并操作时,先转到想要合并的分支,然后使用合并命令指定要合并的分支。
$ git merge <ブランチ名>
$ git merge <リモート名>/<ブランチ名>
(备忘录)合并有三种类型。
1. 快速前进合并
只需要将分支指针向前推进,以便合并没有分叉的结构。
2. 自动合并
用于合并分叉的内容。
3. 冲突合并
在合并分叉内容时,遇到修复了相同位置的问题。(由于无法确定优先选择哪个修复内容,需要决定使用哪个修复内容)
当发生冲突时☆重要☆
➀通过$ git merge确认发生了冲突
➁通过$ git status确认冲突发生的位置,并移动到该位置
➂确认冲突的部分(删除不需要的部分,只保留正确的部分)
如果发生冲突,情况会如下(假设要合并sub分支)
这里所说的HEAD分支是指自己当前所在的分支,而不是指HEAD分支本身,请注意!
<<<<< HEAD
//HEADブランチの内容
=========
//subブランチの内容
>>>>> sub
删除冲突的部分(包括<<<<< 和 ====== ,>>>>>),然后删除不需要保留为程序的冲突内容。
如果出现其他冲突,同样要解决并重新合并。
记录变更历史 – git log
(24)191228: 191228年12月28日
方便的选择
(1) 只显示摘要的一行。
$ git log --oneline
(2) 当想要显示特定文件的差异时
$ git log -p <ファイル名>
显示最近的提交
在这里设置要显示的向后的提交数量
$ git log -n <コミット数>
删除文件 git rm 2-2
rm 是「remove」的简称。
(1) 删除特定的文件。
$ git rm <ファイル名>
删除特定目录时,需要添加选项”-r”。
$ git rm -r <ディレクトリ名>
如果只想删除远程数据,使用此命令即可。而在(1)和(2)中,无论是远程还是本地,都会被删除,但如果希望在工作树(本地)上保留文件,则可以使用此命令。
$ git rm --cached <ファイル名>
2.3 远程操作 git remote
在操作远程存储库时,基本上使用remote命令就可以了。请注意,远程存储库可以注册多个!当单独使用git remote命令时,会显示已注册的远程存储库的名称。
- <リモート名>はデフォルトではorigin
fetch和pull的区别
$ git pull 和 $ git fetch <远程名称>+$ git merge <远程名称>/<分支名称> 是相同的操作。从这样看来,pull 看起来更简单,但是(本地)如果指定的远程仓库的分支被合并到当前所在的分支中,会导致内容混淆,需要注意!为了避免每次都需要确认这样的麻烦,也可以选择使用 fetch 然后合并!
其他指令
・记录文件移动
$ git mv <源文件名> <目标文件名>
可以同时操作 $ mv、$ git rm 和 $ git add 这三个命令。
给命令添加别名。
抱歉,我不懂中文。请问您需要什么帮助?
$ git config --global alias.<エイリアス名> <もとのコマンド名>
$ git config --global alias.co commit
在上面的例子中,我们用别名co来注册commit命令。
config是用于进行配置的命令。
通过添加–global选项,可以将更改应用到整个电脑上(如果不添加这个选项,更改只会在特定的目录中生效)。
我使用的别名如下所示。
加α
.gitignore文件
以下这些文件在Git中不需要共享:
– 包含密码的文件
– 在团队开发过程中不需要共享的文件
通过将不需要共享的文件整理到.gitignore中,可以停止将这些文件共享到Git中,实现上述提到的目的。
撤销更改的方法
即便说要取消更改,根据不同的阶段(要取消哪部分),操作也会有所不同,但总结起来就像下表所示。
注意:只要尚未將上一次提交的更改推送到遠程儲存庫,就可以進行「取消最近一次提交」。
在执行上述命令后,输入特定的“文件名”或“目录名”,或者选择全部时,输入“。”。