前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何使用Git提交我们的代码

如何使用Git提交我们的代码

作者头像
东边的大西瓜
发布2022-05-05 12:28:07
9140
发布2022-05-05 12:28:07
举报
文章被收录于专栏:吃着西瓜学Java吃着西瓜学Java

如何使用Git提交我们的代码

Git介绍以及工作流程

属性介绍

  • 工作区: 就是你在电脑里能看到的目录。
  • 暂存区: 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。(add)
  • 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。(push)

工作流程

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

相关命令解释以及拓展:

  1. git remote add < aliasname > < url >: 关联一个远程库,即映射远程仓库到本地仓库,aliasname为本地仓库对远程仓库起的别名,可以自己起,通常为original;url为远程仓库的url,具体的话就是远程仓库的ssh;
  2. git remote -v: 查看已映射的远程库的信息
  3. git remote rm < aliasname >: 删除某个远程库映射
  4. git push -u <远程仓库别名> <本地分支名>: 用于指定git push命令中本地分支所对应的上游分支,使用了短选项-u,所以它使得当前分支远程跟踪了远程分支,下次再Push时可以直接git push
  5. git push --set-upstream <远程仓库别名> <本地分支名>: 等价于上面,只是将短选项-u,替换为了长选项--set-upstream
  6. git push <远程仓库名> <本地分支名>:<远程分支名>: 推送本地分支名到指定的远程分支名,上面的两个推送命令只是默认为本地分支名了,偷个小懒,这个也可以省略,不过该命令没有追踪远程分支,所以以后也都要使用完整命令,而不能直接git push

提交仓库步骤

  1. git pull: 拉取远程仓库最新代码,并同本地分支合并,等价于git fetch + git merge
  2. git add: 添加文件到暂缓区, .代表当前目录
  3. git commit: 提交文件到本地版本库存, -m “原因”
  4. git push: 提交到远程分支并合并,下文有详细介绍

注意:在idea中可通过Version Control来查看本次提交所做的修改 ,蓝色代表修改文件,绿色代表新增文件,灰色代表删除文件

rebase命令

“git rebase 可以帮助项目中的提交历史干净整洁, 只对尚未推送(push)或分享给别人的本地修改执行变基操作清理历史,从不对已推送至别处的提交执行变基操作。因为rebase会改变提交历史记录,这会影响到别人使用这一远程仓库。 ”

一句话,整理本地分支的commit为一条直线,整理为一条直线的原理又是什么呢?其实rebase命令又被称作变基命令,扩充一下“变基"这个词,可以理解为更换准基线。

具体步骤:

  1. 寻找最近的公共祖先
  2. 合并分支到master线

merge 和 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

查看提交状态日志,可看分支合并情况

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 吃着西瓜学Java 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何使用Git提交我们的代码
    • Git介绍以及工作流程
      • 属性介绍
      • 工作流程
    • 用户命令
      • 创建仓库命令
    • 重要的分支命令详解:
      • 相关命令解释以及拓展:
    • 提交仓库步骤
      • rebase命令
        • merge 和 rebase的对比
          • 提交与修改
            • 提交日志
            • 远程操作
            • 分支命令
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档