1.在工作目录中修改文件。2.暂存文件,将文件的快照放入暂存区域(.git/index)。3.提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录(.git)。
img
命令 | 说明 |
---|---|
git config user.name | 查看用户名 |
git config user.email | 查看地址 |
git config --global user.name "your name" | 修改用户名 |
git config --global user.name "your email" | 修改地址 |
下表列出了 git 创建仓库的命令:
命令 | 说明 |
---|---|
git init | 初始化仓库,如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。 |
git clone | 拷贝一份远程仓库,也就是下载一个项目。 |
这里拿例子来进行解释,因为Github经常登不上,所以我们这里使用Gitee作为演示例子,首先将自己电脑的公匙部署绑定在Gitee上面,再在Gitee和本地上面新建仓库,因为我们的git命令在本地工作区使用才有作用。
如下图所示:根据它所提示的步骤往下走,我们先配置本地的用户名和一些信息,用于标识提交者,再进行添加、提交等操作。
WeChat9fa439f4566e3d727c2838e6069c1775
-u
,所以它使得当前分支远程跟踪了远程分支,下次再Push时可以直接git push注意:在idea中可通过Version Control来查看本次提交所做的修改 ,蓝色代表修改文件,绿色代表新增文件,灰色代表删除文件
“git rebase 可以帮助项目中的提交历史干净整洁, 只对尚未推送(push)或分享给别人的本地修改执行变基操作清理历史,从不对已推送至别处的提交执行变基操作。因为rebase会改变提交历史记录,这会影响到别人使用这一远程仓库。 ”
一句话,整理本地分支的commit为一条直线,整理为一条直线的原理又是什么呢?其实rebase命令又被称作变基命令,扩充一下“变基"这个词,可以理解为更换准基线。
具体步骤:
merge和rebase都是我们常用的合并分支的命令,它们俩个的基本原理其实都逃不开寻找最近的公共祖先,区别就是合并分支的具体操作了。git merge 会产生一个新的合并记录,可以理解为合并两个分支并生成一个新的提交,可以让人知道什么时候有合并。而rebase会合并分支为一条,这条分支又会是以分支为准,因此又被称作变基。
网上对这两个操作的看法和使用也都是公说公有理,婆说婆有理,其实安装它们的特点合理去选择这两个操作就行了。
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
Git命令必须在Git仓库目录内执行(git init
除外),在仓库目录外执行是没有意义的。
下表列出了有关创建与提交你的项目的快照的命令:
命令 | 说明 |
---|---|
git add | 添加文件到暂缓区(.git/index) |
git commit | 提交暂存区文件到本地仓库。先add再commit,一次提交多个add。 |
git status | 查看仓库当前的状态,显示有变更的文件。 |
git diff | 比较文件的不同,即暂存区和工作区的差异。 |
git reset | 回退版本。 |
git rm | 删除工作区文件。 |
git mv | 移动或重命名工作区文件。 |
cat | 将文件内容打印显示 |
命令 | 说明 |
---|---|
git log | 查看历史提交记录 |
git blame <file> | 以列表形式查看指定文件的历史修改记录 |
命令 | 说明 |
---|---|
git remote | 远程仓库操作 |
git fetch | 从远程获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
命令 | 说明 |
---|---|
git branch | 列出本地所有的远程分支 |
git branch -r | 列出所有的远程分支 |
git branch -a | 列出所有的远程和本地分支 |
git branch [branch-name] | 新建一个分支,但依然停留在当前分支 |
git branch --track [branch] [remote-branch] | 新建一个分支,与指定的远程分支建立追踪关系 |
git checkout -b [branch] | 新建一个分支,并切换到该分支 |
git checkout [branch-name] | 切换到指定分支,并更新工作区 |
git checkout - | 切换到上一个分支 |
git branch -d [branch-name] | 删除分支 |
git branch --set -upstream [branch] [remote-branch] | 建立追踪关系,在现有分支和指定的远程分支之间 |
git merge [branch] | 合并指定分支到当前分支 |
git rebase<branch> | 衍合指定分支到当前分支 |
git log --graph --pretty=oneline --abbrev-commit | 查看提交状态日志,可看分支合并情况 |