推荐

git大全
git沙盒练习分支

git仓库名称(个人-付费) github gitlab gitee 腾讯 git 慕课 git 阿里 git
仓库大小 500M-2G - - - - 2G-无限制
仓库数量 无限制 - - - - 50-无限制
page 支持公共仓库-支持私有和公共仓库 - - - -
Actions 每月2000分钟-每月3000分钟 - - - -

安装 git

win

mac

  • 安装方法一:brew install git
    • 如果 brew 不存在
    • brew官网安装命令:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
    • 如果报错则使用下面加速安装:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
    • 内地加速安装 brew /bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/code-ba/brew-install@main/install.sh)"
  • 安装方法二:
    • 在控制台输入git,根据命令安装软件,等待一段时间完成安装即可。

安装完成后,打开 cmd 输入 git --version
出来版本号说明安装 git 成功:git version 2.28.0.windows.1

创建密钥[ssh key]

doc

  • ssh-keygen,一路回车即可
    • 这里是路径,不填就是默认的(./id_rsa_gitlab是相对当前路径的,可以写完整绝对路径,win如果没权限可以在.ssh文件夹下面打开gitbash再生成) Enter file in which to save the key (/c/Users/Baran.Lee/.ssh/id_rsa): /c/ssh/
    • 这里是密钥的密码,不填就是默认空 Enter passphrase (empty for no passphrase):
    • 确认密码 Enter same passphrase again:
    • 如果自定义了路径,可以通过.ssh/config文件自定义配置路径
  • 拷贝公钥
    • mac pbcopy < ~/.ssh/id_rsa.pub
    • win用gitbash clip < ~/.ssh/id_rsa.pub
  • 粘贴到设置配置公钥的地方,如github,点击add ssh key,title非必填

github创建仓库

  • 注册登录成功后,点击 new 会看到 Create a new repository
  • 填写 仓库名称 Repository name
  • 填写 仓库描述 Description
  • 选择 仓库类型 公共 public 私有 private
  • 选择 添加自述文件。 (建议选上 README.md)
  • 选择 添加.gitignore
  • 选择一个许可证。
  • 点击最下面的创建仓库按钮完成创建。

配置提交忽略文件或文件夹,根目录新建文件.gitignore

1
2
3
4
.history
index.js
src/index.js
theme/default/

初始化仓库

初始化本地仓库

  • git init
  • git add README.md 或者 git add .
  • git commit -m "first commit"
  • git branch -M main
  • git remote add origin https://github.com/cxvh/docs.git
  • git push -u origin main

已有仓库

  • git remote add origin https://github.com/cxvh/docs.git
  • git branch -M main
  • git push -u origin main

多人使用 git 需要先邀请为团队成员
github的邀请在邮箱可以收到,码云的邀请直接登录个人账号能收到

想要找到所有的操作记录时如何进行操作

  • 查看所有提交记录git log
  • 查看某个人的提交记录git log --author='Baran'

配置用户名和邮箱

  • 添加用户名git config --add --global user.name 'cxvh'
  • 添加邮箱git config --add --global user.email '***@outlook.com'
  • 编辑用户名git config --global user.name 'cxvh'
  • 编辑邮箱git config --global user.email '***@outlook.com'
  • 查看配置信息git config --global --list
  • 删除 usergit config --global --remove-section user

想要修改项目中的文件时如何进行操作

查看项目当前的状态

  • git status
  • modified: demo.html (字红色) 意思是改动, demo.html 文件被改动,提示需要添加到暂存区
  • git add demo.html
  • git status
  • modified: demo.html (字绿色) 意思是改动, demo.html 文件被改动,此时文件在暂存区,可以提交到远程仓库

查看提交记录git log

想要删除不需要的文件时如何进行操作

手动删除文件

  • 删除后查看状态
  • git status
  • deleted:demo.html (字红色)
  • 把剩余的本地代码提交到暂存区
  • git add .
  • 在次查看状态
  • git status
  • deleted:demo.html (字绿色)
  • 提交到暂存区仓库
  • git commit -m 手动删除文件

命令行删除文件

  • 输入命令+要删除的文件或文件夹或文件夹下面的文件
  • git rm demo.html

删除文件后,记得把剩余文件添加到暂存区里面

  • git add .
  • git status
  • deleted:demo.html (字绿色)
  • git add .
  • git commit -m 命令行删除文件

想要给文件重命名时如何进行操作

手动重命名

  • 手动重命名后查看状态
  • git status
  • deleted:demo.html (字红色)删除了一个文件
  • home.html (字红色)添加了一个文件
  • git add home.html
  • git rm demo.html
  • git status
  • renamed:demo.html->home.html (字绿色)说明操作成功
  • git commit -m 手动重命名文件
  • git status

提交到远程仓库,查看状态:nothing to commit 是没有要提交的

命令行修改名字

  • 格式:git mv 当前名字 修改后名字
  • git mv home.html demo.html
  • git status
  • renamed:demo.html->home.html (字绿色)说明操作成功
  • git commit -m 命令行重命名文件
  • git status

再次提交到远程仓库,查看状态:nothing to commit 是没有要提交的

想要移动文件到其他位置时如何进行操作

移动文件到文件夹

  • 命令行格式:git mv 文件 文件夹
  • git mv demo.html page
  • git status
  • renamed:demo.html->page/demo.html (字绿色)说明操作成功
  • git commit -m '移动文件到文件夹并提交'

移动文件到文件夹 并 重命名

  • 命令行格式:git mv 文件 文件夹/文件名
  • git mv demo.html page/home.html
  • git status
  • renamed:demo.html->page/home.html (字绿色)说明操作成功
  • git commit -m '移动文件到文件夹 并重命名 并提交'

文件有变化时如何查看文件前后变化

文件重命名+移动+各种操作后,命令行查看文件的前后变化

  • 方法一
    • 格式:git log --pretty=online 文件的所在位置 名称 或 路径/名称
    • git log --pretty=oneline home/demo.html
    • 出来了 ID head -> 分支(master) 描述:移动文件并且重命名
    • 复制 ID
    • 格式:git show ID
    • git show b435ec75eabc959559a5sd9adasdsadasdas
  • 方法二
    • 格式:git log -p 文件的所在位置 名称 或 路径/名称
    • git log -p home/demo.html

操作失误的情况下如何实现一键还原

文件还没有提交到暂存区之前,让代码回到上一次提交的状态

  • 针对单个文件的还原
  • 自己找不同,手动还原
  • git diff
  • 红色删掉的,绿色添加的

命令行操作

  • git status
  • modified:home/demo.html 说明有改动的文件,那就还原他
  • git checkout -- home/home.html

不再追踪时如何实现撤销追踪操作

文件已经提交到暂存区,git 会对文件进行追踪,所以需要撤销追踪,然后还原

  • git reset HEAD home/demo.html
  • git checkout -- home/home.html

想要回到上一版本或者指定版本时如何进行操作

一个项目提交到暂存区 5 次,项目快速退回到第 3 次 提交的状态

  • 方法一
    • ^ 一个(^)代表回退一个版本,^ 两个(^^)代表回退两个版本,就到第 3 次 提交
    • git reset --hard HEAD^^
  • 方法二
    • 获取需要回退到的版本 ID (可以取前 7 位,也可以全部复制)
    • git log
    • 回退指定版本 ID(可以是 ID 前 7 位,也可以是完整 ID)
    • git reset --hard ID

想要将某一文件回到指定版本时如何进行操作

一个 项目 提交到暂存区 5 次,指定文件 快速退回到第 3 次 提交的状态

  • 获取要回退的版本 ID (可以取前 7 位)
  • git log
  • git checkout e748986 -- demo.html
  • git checkout e748986 -- home/home.html
  • git add .
  • git commit -m 将指定文件回退到指定版本

想要修改内容之后推送至远程仓库时如何进行操作

  • 推送到远程的master支上git push origin master
  • 设置默认推送远程地址git push --set-upstream origin main(设置成功后下次只需要git push即可)

想要给每个版本创建一个独特标签,做所有版本

  • 创建 taggit tag v1.0
  • 给指定 commit 版本 创建 taggit tag v0.5 9286adde
  • 查看 taggit tag
  • 删除 taggit tag -d v0.5
  • 推送 tag 到远程仓库git push origin v1.0

创建的 tag 默认 加到最新的一次 commit 上面

想要切换、删除分支时如何进行操作

分支操作:需要完成某些功能,从主线中剥离出来一些支线,由支线完成单独的功能,最后把支线合并到主线

  • 创建分支git branch dev
  • 查看分支git branch
  • 切换分支git checkout dev
  • 删除分支(不能删除当前的分支)git branch -d test
  • 强制删除分支(分支处于 commit ,没有 push 到远程仓库的状态也是不能删除)git branch -D test
  • 创建分支并切换到分支git checkout -b test

想要合并分支时如何进行操作

分支开发完成后,commit 到暂存区,合并到主线,
切换主线分支,然后把 dev 分支 合并到主线 master 分支

  • git checkout master
  • git branch
  • git merge dev dev合并到master dev 分支没有变化,master 是合并后的代码

当合并分支有冲突时如何正确的合并分支

两人都改了同一个文件后进行合并git merge dev

  • 解决方法一
    • 冲突,忽略 dev 分支代码,保留原分支(当前分支)内容
    • git merge --abort
  • 解决方法二
    • 手动处理冲突
    • git add .
    • git commit
    • 可编辑界面,按 i 可输入 加注释:这是解决冲突之后的正确代码,解决了 test.html 当中的冲突
    • 退出编辑:esc-->:wq-->enter
    • git commit -m 解决冲突之后的代码

不同人想要查看版本路线如何进行操作

  • 查看日志git log
  • 查看精简日志git log --oneline
  • 查看版本路线,分支日志git log --oneline --graph

不同人想要删除不想要的分支如何操作

  • 拉取所有的远程仓库git fetch
  • 查看远程分支git branch -av
  • 删除远程仓库分支(1.改分支是不是不需要了 2.该分支有没有合并到主分支)git push origin --delete dev

不同人修改了不同文件如何处理

张三给远程仓库 dev 提交了代码,修改了 a.html 文件,当前用户改了 b.html 需要提交到远程仓库

  • 查看远程分支
  • git branch -av
  • 出来了 remotes/origin/dev
  • 把远程的仓库 dev 分支 代码合并到暂存区的 dev 分支,再把暂存区的 dev 分支提交到远程仓库
  • git merge origin/dev
  • 按 i 编辑加入注释,退出编辑:esc—>:wq–>enter
  • 提交到远程 dev 仓库
  • git push

不同人修改相同的文件如何操作

  • 添加用户,模拟 A 用户 可忽略
    • git config --add --global user.name 'cc'
    • git config --add --global user.email 'qq@qq.com'
  • 查看本地分支与远程分支的关联
    • git branch -av
  • 远端分支与本地分支做关联
    • git checkout -b dev remotes/origin/dev
  • 对项目进行改动,然后提交
    • git add .
    • git commit -m 我需改的
    • git push
  • B 用户修改文件提交
    • git branch -av
    • git fetch
    • git branch -av
    • git checkout -b dev remotes/origin/dev
  • 对项目进行改动,然后提交
    • git add .
    • git commit -m 他需改的
    • git push

从谷歌应用商店安装扩展

安装浏览器扩展: octotree(应用商店搜索出来第一个)

github 会出来左侧的导航树,类似编辑器的导航树,体验效果一样




安装浏览器扩展: enhanced github(应用商店搜索出来第一个)

github 会显示单个文件的大小,在单个文件旁边显示下载图标,点击可直接下载单个文件

安装浏览器扩展: gitzip for github(应用商店搜索出来第一个)

github 直接下载某个文件夹,文件夹空白处双击,出现下载图标,点击下载




git 命令思维导图