码迷,mamicode.com
首页 > 其他好文 > 详细

Git总结

时间:2021-02-25 11:53:14      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:out   github   日常   授权   公钥   ssh免登陆   global   测试   版本控制系统   

参考资料:
https://zhuanlan.zhihu.com/p/104365543

2019-黑马Java最新Git教程

下载地址

git的安装,点击下一步即可。

git能够做的事情:1. 版本管理。2.协同开发

Git使用之前的配置

  1. 配置提交人姓名:git config --global user.name 提交人姓名
  2. 配置提交人姓名:git config --global user.email 提交人邮箱
  3. 查看git配置信息:git config --list

注意:

  1. 如果要对配置信息进行修改,重复上述命令即可
  2. 配置只需要执行一次。
  3. 配置信息文件 .gitconfig , 可以在c盘用户处找到 ,可以在该文件中修改信息

Git基本工作流程

1、在工作目录中添加、修改文件(被git管理的)

2、将需要进行版本管理的文件放入暂存区域;

3、将暂存区域的文件提交到git仓库。

git仓库 暂存区 工作目录
用于存放提交记录 临时存放被修改文件 被Git管理的项目目录

技术图片

在项目的文件夹中,右键
技术图片

  • git init 初始化git仓库
    仓库初始化的地址在当前文件夹目录,默认状态是隐藏的

  • git status 文件查看文件状态

  • git add 文件/文件夹 or git add .追踪文件
    添加文件到暂存区中

  • git commit -m 提交信息 向仓库中提交代码
    将暂存区中的文件提交到本地仓库中 ,提交后,则该文件不存在于暂存区。 原则:提交一个文本

  • git checkout 文件用暂存区中的文件覆盖工作目录中的文件

  • git diff 文件查看暂存区与工作目录的不同(更改情况)

  • git ls-files查看暂存区中的文件

  • git rm --cached 文件将文件从暂存区中删除,该文件,仍然存在与工作目录中

  • git reset --hard commitID 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录

  • git reflog: 记录每一次提交仓库命令,这里可以找到版本号commitID

    • 穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
    • 要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

日常使用的命令

技术图片

创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。

分支

为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。

使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。
分支之间独立进行,互不影响。就像平行宇宙。
技术图片

  1. 主分支(main):第一次向 git 仓库中提交更新记录时自动产生的一个分支。

  2. 开发分支(develop): 作为开发的分支,基于main分支创建。主分支很重要,一般不用主分支开发,测试。开发分支可以理解为主分支的副本,开发完副本再拷贝回主分支之中。

  3. 功能分支 (feature) : 作为开发具体功能的分支,基于开发分支创建。具体功能在功能分支上写,功能累计到一定程度,将其拷贝到开发分支之中,再删掉功能分支即可

技术图片
  • git branch 查看分支

  • git branch 分支名称 创建分支

  • git checkout 分支名称 切换分支

  • git merge 来源分支 合并分支

    开发分支是被合并的,要在主分支里合并开发分支
    合并后, 开发分支仍然存在

  • git branch -d 分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)当前分支不能停留在要删除的分支上

  • git branch -a查看远程分支
    将本地分支提交到远程仓库之前,需要在远程仓库建立新的分支。

  • git push -u origin 分支
    在默认情况下,git push时一般会上传到origin下的mian分支上,然而当repositorybranch过多,而又没有设置关联时,git就会产生疑问,因为它无法判断你的push目标。push时需要指明分支

协同开发流程

在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。

只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个 “文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。

GitHub,Gitee可以作为远程仓库

技术图片

解决冲突

在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决

解决方法:把远程仓库pull到本地,再push

跨团队协作

  1. 程序员 C fork仓库
  2. 程序员 C 将仓库克隆在本地进行修改
  3. 程序员 C 将仓库推送到远程
  4. 程序员 C 发起pull reqest
  5. 原仓库作者审核
  6. 原仓库作者合并代码

附录(遇到的常见问题)

SSH免登陆

授权问题,并不需要每次都登陆

SSH keys (生成秘钥) : ssh-keygen

秘钥存储目录:C:\Users\用户\.ssh

技术图片

公钥名称:id_rsa.pub

私钥名称:id_rsa

第一次使用需要设置用户名和邮箱

git config user.name "用户名"

git config user.email "邮箱"

git忽略清单

将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。

git忽略清单文件名称:.gitignore

node_modules
test
test.html
test.md

将工作目录中的文件全部添加到暂存区:git add .

gitignore 不起作用的解决办法

使用 rm 命令清除一下相关的缓存内容,于是按照网上的步骤进行操作:

git rm -r --cached .
git add .
git commit -m "update .gitignore"

注:idea中使用插件 .gitignore 更方便

Windows解决GitHub下载速度太慢问题——修改hosts

github速度慢怎么办?换URL

我们可以使用github的镜像网站,

github.com.cnpmjs.org

github.com替换为上述URL即可,然后去clone,速度飞快!

  1. 打开hosts文件

    C:\Windows\System32\drivers\etc

  2. 浏览器访问https://www.ipaddress.com/,分别输入

    github.comgithub.global.ssl.fastly.net以获取对应的ip。

    ? 技术图片

  3. 更改hosts文件:在后面追加

    (可以修改hosts文件的权限为可写)

    140.82.112.3 github.com
    199.232.69.194 github.global.ssl.fastly.net
    
    
  4. 刷新DNS缓存(Mac 系统)

? cmd : ipconfig /flushdns

这样,git clone 的速度将提高10倍

提交所有文件以及文件夹到暂存区 git add .

查看所在目录所有文件 ls

clone的项目如何提交到远程仓库?

配置完成公钥之后就可以了

  1. git clone 链接
  2. 切换到clone所在项目的目录
  3. git add .
  4. git commit -m ‘修改提示‘
  5. git pull 更新项目为最新
  6. git push 更新项目

删除暂存区内容/清空暂存区

git rm --cached file.txt

所谓暂存区实质是.git目录下的index文件,只要将此文件删除,那么就可以认为暂存区被清空。

rm .git/index

Git 的 commit message 写错了。本地补救措施

git commit --amend

进入vim编辑状态

i 进入编辑模式
Esc 命令模式

wq保存退出

撤销GihHub commit

场景:你已经执行了 git push, 把你的修改发送到了 GitHub,现在你意识到这些 commit 的其中一个是有问题的,你需要撤销那一个 commit.

git revert 再按照上一条的问题操作就可以了

接下来可以使用git push 新的"反转"commit来抵消错误提交的commit。这是Git最安全,最基本的撤销场景,不会改变历史。

IDEA中集成Git

将远程项目文件夹里面的内容拷贝进去idea新建的项目,覆盖掉即可

拉取操作

拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称

远程仓库发送变动,则不能直接push,需要先pull

标签

为当前项目打标签

往小了说,比如你现在在敲乐优商城,刚结束day11的代码。你想给当前代码留个“快照”,以后可以恢复。

往大了说,公司项目开发会留存版本v1.0 v2.0,也可以用标签。

标签和分支不是一个概念。比如你有master分支,今天可能只写了Hello.java,你为当前状态打了一个标签v1.0,提交了代码,也提交了标签。第二天你新增了一个World.java,提交到master分支。此时的master分支已经和昨天的master分支不一样了,但是你在另一台电脑上下载v1.0标签,它的代码还是只有Hello.java。

也就是说,分支是动态的、变化的,而标签把代码状态留在了那一刻。

创建标签的步骤:

git tag [tagName]
git push origin [tagName]

Git总结

标签:out   github   日常   授权   公钥   ssh免登陆   global   测试   版本控制系统   

原文地址:https://www.cnblogs.com/qiyewuan/p/14442369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!