作者:禁灭19 | 来源:互联网 | 2023-09-08 20:02
git - 简单入门指南
前言:通过网上检索到的资料和个人常用到的现分析总结,并记录博客文档,用于复习和分享!
1.创建新仓库
创建新文件夹,然后打开,并执行
git init
以创建新的git仓库
2.检出仓库
执行如下命令以创建一个本地仓库的克隆版本(还未尝试)
git clone /path/to/repository
如果是远程服务器(如 Gitlab)上的仓库,你要输入的命令是这样的
git clone username@host:/path/to/repsoitory
3.关于Git的工作流程:工作流
你的本地仓库由git维护的三颗“树”组成:
- 第一个是你的工作目录,它持有实际的文件;
- 第二个是缓存区(index),它像一个缓存区域,零时保存你的改动;
- 最后是HEAD,它指向你最后一次提交的结果。
如图(原图源自:此处)
4.添加和提交(常用)
第一步:你可以提出更改(把它们添加到缓存区),使用如下命令:
git add <filename>
git add *
第二步&#xff1a;使用如下命令以实际提交改动
git commit -m "代码提交信息"
目前可以确定的是&#xff0c;你的改动已经提交到了HEAD&#xff0c;但是还没有到你的远端仓库。
第三步&#xff1a;你的改动现在已经在本地仓库的HEAD中。执行如下命令可将这些改动提交到远端仓库&#xff1a;
git push origin master
当然&#xff0c;你可以把master换成你想要推送的任何分支
另外&#xff0c;如果你还没有克隆现有仓库&#xff0c;并欲将你的仓库连接到某个远程服务器&#xff0c;你可以使用如下命令&#xff1a;
git remote add origin<server>
完成&#xff1a;如此你就能够将你的改动推送到所添加的服务器上去。
5.分支(我个人比较难理解)
例如如下操作&#xff1a;
-
创建一个叫做“feature_x”的分支&#xff0c;并切换过去:
git checkout -b feature_x
-
切换回主分支&#xff1a;
git checkeout master
-
再把新建的分支删掉&#xff1a;
git branch -d feature_x
-
除非你将分支推送到远程仓库&#xff0c;不然该分支就是不为他人所见到的&#xff08;对他人不可见&#xff09;&#xff1a;
git push origin <branch>
6.更新与合并
日常工作中经常使用的操作,就是更新你的本地仓库至最新的改动&#xff0c;然后在上面进行进一步修改和开发:
git pull
以在你的工作目录中 获取&#xff08;fetch&#xff09;并和并&#xff08;merge&#xff09;远端的改动。如果要合并其他分支到你的当前分支&#xff08;例如master&#xff09;&#xff0c;执行如下&#xff1a;
git merge<branch>
在这两种情况下&#xff0c;git都会尝试去自动合并并改动。遗憾的是&#xff0c;这可能并非每次都会成功&#xff0c;并可能出现冲突&#xff08;conflicts&#xff09;。这时候就需要你修改这些文件来手动合并这些冲突。改完之后&#xff0c;你还需要执行如下命令将它们标记为合并成功&#xff08;这一块我就有点不懂了&#xff0c;日后看看&#xff09;:
git add <filename>
在合并改动之前&#xff0c;你可以使用如下命令浏览差异:
git diff<source_branch> <target_branch>
7.标签
目的&#xff1a;为软件发布创建标签是推荐的。这个概念早已存在&#xff0c;在SVN&#xff08;没使用过&#xff09;中也有。你可以执行如下命令创建一个叫做1.0.0的标签&#xff1a;
git tag 1.0.0 1b2e1d63ff
1b2e1d63ff 就是你想要标记的提交ID的前10位字符。可以使用下列命令获取提交的ID&#xff1a;
git log
你也可以使用少一点的提交ID前几位&#xff0c;只要它的指向具有唯一性。
8.log 日志查看
目的&#xff1a;如果你想要了解本地仓库的历史记录&#xff0c;最简单的命令就是使用&#xff1a;
git log
你还可以添加一些参数来修改他的输出&#xff0c;从而得到自己想要的结果。只看某一个人的提交记录:
git log --author&#61;bob
一个压缩后的每一条提交记录占一行的输出&#xff1a;
git log --pretty&#61;oneline
如果你想通过ASCII艺术的树形结构来展示所有的分支&#xff0c;每个分支都标示它的名字和标签&#xff1a;
git log --graph --oneline --decorate --all
看看那些文件改变了&#xff1a;
git log --name-status
这些知识你可以使用的参数中很小的一部分。更多的信息可以查看:
git log --help
9.替换本地的改动
假如&#xff0c;你操作失误&#xff08;最好永远不要&#xff09;,你可以使用如下命令替换本地改动&#xff1a;
git checkout --<filename>
此命令会使用HEAD中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动以及新文件都不会受到影响。
假如你想丢弃你在本地的所有改动与提交&#xff0c;你可以到服务器上获取最新版本的历史&#xff0c;并将你本地主分支指向它&#xff1a;
git fetch origin
git reset --hard origin/master
10.另外&#xff1a;实用小贴士
-
内建的图形化git:
gitk
-
彩色的git输出&#xff1a;
git config color.ui true
-
显示历史纪录时&#xff0c;每个提交的信息只显示一行&#xff1a;
git config format.pretty oneline
-
交互式添加文件到缓存区&#xff1a;
git add -i
最后&#xff0c;参考
- 感谢&#xff1a;https://rogerdudler.github.io/git-guide/index.zh.html
- 主要参照上述文件资料&#xff01;