当前位置:首页 > 图灵资讯 > 技术篇> git操作手册

git操作手册

发布时间:2023-05-04 10:28:35

 

一、代码提交

  • 将新文件添加到临时存储区
  • git add hello_world.c #hello_world.C加入临存区
  • 在临存区添加所有变更文件
  • git add. #hello_world.C加入临存区
  • 检查当前状态
  • git status
  • 将临时存储区的文件提交给当地git仓库
  • git commit -m "add:添加新文件..."
  • 将本地git代码提交给git服务器
  • git push #提交到git服务器仓库
  • 退回某一提交的版本
  • git reflog #获取提交的版本号
  • git reset --hard xxxxx
二、检查分支
  • 查看当地分支机构
  • git branch #列出当地已存在的分支,目前的分支将用*标记
  • 查看远程分支
  • git branch -r #查看远程版本库的分支列表
  • 检查所有分支
  • git branch -a #查看所有分支列表(包括本地和远程,remotes/开头表示远程分支)
  • 查看最后一次提交的分支
  • git branch -v #检查一个分支的最后一次提交
  • 检查合并的分支
  • git branch --merged #检查哪些分支已经合并到当前的分支
  • 检查未合并的分支
  • git branch --no-merged #检查所有未合并到工作的分支机构
三、创建和切换分支
  • 创建新的分支
  • git branch 新分支名称
  • 切换分支
  • git checkout 新分支名称
  • 在创建分支的同时,切换到分支
  • git checkout -b 新分支名称
四、从远程仓库pull(拉)代码到本地分支
  • 指定远程分支和本地分支
  • git pull origin 远程分支名称:本地分支名称
  • 不屑当地分支名称的,默认与远程分支同名
  • git pull origin 远程分支名称:
五、将新分支推送到远程仓库

git push origin 分支名称

六、删除分支
  • 删除当地分支(不能删除当前分支,如果要删除,必须切换到其他分支)
  • git branch -d 分支名称
  • 注:如删除时报错误:error: The branch “分支名” is not fully merged. (意思 是:分支未完全合并)。解决方案是使用。 -D 强制删除代码如下:
  • git branch -D 分支名称
  • 删除远程分支
  • git push origin :分支名称
  • 注:分支名称前有冒号,分支名称前的冒号代表删除
七、合并分支
  • 加入我们目前的分支tempbranch,刚刚开发出一个功能,执行以下命令提交到当前的分支:
  • git add .
  • git commit -m "add:完成临时测试函数功能,提交tempbranch分支
  • git push -u origin tempbranch
  • 切换到master分支
  • git checkout master
  • 若多人开发状态,则需要将远程master分支上的代码pull下降
  • git pull origin master
  • 然后是tempbranch 分支代码合并到master上
  • git merge tempbranch
  • 如果git 当merge发生冲突时,可以执行以下命令取消merge:
  • git merge --abort:
  • 然后检查状态
  • git status
  • 最后,push到远程仓库
  • git push origin master
八、概念说明
  • 什么是分支?
  • Git 处理分支的方法可以说是不可思议的轻量级。创建新分支的操作几乎可以在瞬间完成,不同分支之间的切换操作也同样方便。 与许多其他版本的控制系统不同,Git 鼓励在工作过程中频繁使用分支和合并,即使在一天内进行多次。 理解和精通这一特征,你就会意识到 Git 它是如此强大和独特,并真正改变了你的发展方式。
  • Git保存的不是文件的变化或差异,而是一系列不同时刻的快照 。在提交操作时,Git 一个提交对象将被保存(commit object)。 提交对象将包括指向临时存储内容快照的指针、作者的姓名和电子邮件地址、提交时输入的信息和指向其父亲对象的指针。 第一次提交产生的提交对象无父对象,普通提交操作产生的提交对象有父对象, 多个分支合并产生的提交对象有多个父对象。
  • 分支在实际开发中有什么用?假设你要开发一个新功能,但需要两周时间才能完成。如果你在第一周写了50%的代码,如果你立即提交,不完整的代码库会导致其他人无法工作,因为代码还没有完成。如果所有代码都完成并再次提交,则存在巨大的日常进度损失风险。现在有了分支,就不用怕了。你创建了自己的分支,别人看不见,继续在原来的分支上正常工作,你在自己的分支上工作,想提交,直到开发完成,再次合并在原来的分支上,既安全又不影响他人的工作。
  • 什么是衍生?
  • 分支支流是指分支支流,gitblit上面的衍生实际上是git的分支,主支是master

GitBlit使用教程

9.git删除暂存区或版本库中的文件
  • 基础
  • 我们知道Git有三个区域(工作区、临时存储区、版本库)和几个状态(untracked、unstaged、uncommited),下面简要介绍一下Git的一般工作流程.
  • 打开你的项目文件夹,除了隐藏的.Git文件夹,其他项目文件位于工作区,工作区的文件需要添加到Git的临时存储区(git add),然后提交Git版本库(git commit)。
  • 第一个新建的文件是untracked状态(未跟踪),此时需要gittracked 当addd到达临时存储区时,Git将在临时存储区生成该文件的索引。此时,文件处于uncommited状态,需要Git commit生成版本库。添加到版本库后,修改文件,文件状态将变为unstaged状态。
  • 简单了解Git的工作流程,然后就可以看看如何删除添加到暂存区或版本库中的错误文件了!
  • 将删除错误添加到暂存区的文件中
  • 有时候你在工作区新建了文件Testfile,并且已经添加到了临时存储区,git会告诉你,现有的文件还没有提交到版本库

git操作手册_暂存区

  • 只删除暂存区内的文件
  • 此时,如果您想取消在临时存储区域添加的错误文件,您可以输入以下命令
git rm --cache 文件名

 

git操作手册_版本库_02

  • 上述命令仅删除临时存储区的文件,不会影响工作区的文件,如上图所示,TestFile.txt仍然存在,此时输入以下命令,git将通知testfile有一个未跟踪的文件.txt
git status
  • 删除暂存区和工作区的文件
git rm -f 文件名
  • 工作区的文件也被删除了

git操作手册_版本库_03

 

  • 删除错误提交的commit
  • 有时,git不仅被添加到临时存储区,而且commit也被添加到版本库中。此时,git不能使用 rm需要使用gitt reset命令。
错误提交到版本库。此时,无论是工作区、临时存储区还是版本库,三者的内容都是相同的。因此,在这种情况下,工作区和临时存储区的文件只被删除,错误添加的文件将在下一个版本库中重新生成。此时,为了解决问题,我们必须取消版本库的修改!git reset有三个选项,--hard、--mixed、--soft。

///仅取消已提交的版本库,暂存区和工作区git不会修改 reset --soft 版本库ID//只是取消已提交的版本库和暂存区,工作区gitt不会修改 reset --mixed 将工作区、暂存区和版本库记录完全恢复到指定的版本库git reset --hard 版本库ID,我们应该使用哪个选项?

(1)如果您在提交后修改工作区域的代码并希望保留这些修改,您可以使用git reset --mixed 版本库ID,请注意,这个版本库ID不应该是您刚刚提交的版本库ID,而应该是您刚刚提交的最后一个版本库。如下图所示:(2)如果不想保留这些修改,可以直接使用彻底的恢复命令,git reset --hard 版本库ID。(3)为什么不使用soft,因为它只是恢复了版本库,你提交的文件索引仍然存在于临时存储区域,你需要进一步使用添加到临时存储区域的最后一个删除错误的文件。详见上述内容。
上一篇 Java Collection与Map详解
下一篇 字节面试:项目中,什么地方用到了多线程?

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题