Git

关于Git学习的书籍Git Proopen in new window

Git 常用命令

Git 常用命令

  • git status 查看状态
  • git add 添加变动至暂存区
  • git commit -m 'xxx' 提交暂存区至工作区
  • git push 拉取代码
  • cat xx.js 查看文件
  • git log 打印 git 日志
  • git reset 回退版本
  • git checkout -- xx.js 把工作区的修改全部撤回
  • git diff HEAD -- xx.js 查看当前的变动
  • git pull 推送代码

分支

  • 查看分支 git branch
  • 创建分支 git branch xx(分支名称)
  • 切换分支 git checkout xx(分支名称)
  • 创建并切换分支git checkout -b xx(分支名称)
  • 合并分支 git merge dev(分支名称) 把当前分支合并到主分支
  • 删除分支 git branch -d dev(分支名称)
  • 查看远程分支详情 git remote -v
  • 推送指定分支 git push origin dev(分支名称)
  • 切换分支:git checkout <name>或者git switch <name>
  • 创建+切换分支:git checkout -b <name>或者git switch -c <name>
  • 合并某分支到当前分支:git merge <name>
  • 删除分支:git branch -d <name>
  • 下载指定分支
    • git clone -b dev2 http://git-test.etledu.com/ETLBOAO/BIM1xTrain.git
    • git clone -b 指定从分支下载 dev2 指定从哪个分支下载 http git 链接

合并分支

比如将dev合并到master分支

  • 先在dev分支上拉取master分支,保证是最新的代码(git pull origin master)
  • 然后切换到master分支(git checkout master)
  • 然后合并(git merge dev

参考:分支合并,一看就懂open in new window

代码储存

  • git stash 将代码存储在储存区

参考:Git Stash使用方法open in new window

标签

  • 命令git tag <tagname>用于新建一个标签,默认为 HEAD,也可以指定一个 commit id;
  • 命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
  • 命令git tag可以查看所有标签。
  • 命令git push origin <tagname>可以推送一个本地标签;
  • 命令git push origin --tags可以推送全部未推送过的本地标签;
  • 命令git tag -d <tagname>可以删除一个本地标签;
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

SSH

最近的 http 链接总是出问题,还是 ssh 比较稳。

user

切换帐号其实很简单, 如果你不知道现在本地 Git 用的帐号是什么,你可以输入

  • git config user.name查看用户名
  • git config user.email查看用户邮箱

修改用户名和邮箱的命令

  • git config --global user.name "Your_username"
  • git config --global user.email "Your_email"

查看是否配置成功

  • git config --list

问题场景

  • 技术主管让你去再某个 git 分支上新建一个分支去做你的项目,那么如何在原远程分支的基础上新建自己的分支呢? 解决方法
  • 按照以下命令敲即可
  • git branch newBranch -- 新建本地分支
  • git checkout newBranch -- 本地切换到自己的分支
  • git pull origin xxxxBranch -- 从远程目标分支 copy 代码
  • git push origin newBranch -- 将本地新建的分支同步到服务器
  • git branch --set-upstream-to=origin/newbranch newbranch -- 本地分支和远程分支建立追踪 到此为止,就完成了需求

只记得用户名和密码的情况下使用

git-without.png

注意

  • push 之前先 pull 代码

问题

git config proxy

前一段时间因为墙很厚,github 的代码老是拉取失败,后来就设置了下代理,然后这两天在使用的时候就老报错。

1. fatal: unable to access 'http://xxx': OpenSSL SSL_read: Connection was reset, errno 10054
2. fatal: unable to access 'http://xxx': Received HTTP code 400 from proxy after CONNECT
3. fatal: unable to access 'http://xxx': Failed to connect to github.com port 443: Timed out
4. fatal: unable to access 'http://xxx': Received HTTP code 400 from proxy after CONNECT
1
2
3
4

commit message 规范

提交格式:

<type>(<scope>): <subject>
1
  • type(必须):用于说明commit的类别,可以使用以下标示
    • feat:新功能(feature)
    • fix:修复bug
    • docs:文档(documentation)
    • style: 格式(不影响代码运行的变动)
    • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
    • test:增加测试
    • chore:构建过程或辅助工具的变动
  • scope(选填):描述影响范围
    • 数据层
    • 控制层
    • 视图层
  • subject(必填):本次变动的简短描述
    • 五十字以内
    • 使用第一人称
    • 以动词开头

参考:58-知识分享社区open in new window

Commit example

  • feat:新增功能
  • fix:bug 修复
  • docs:文档更新
  • style:不影响程序逻辑的代码修改(修改空白字符,格式缩进,补全缺失的分号等,没有改变代码逻辑)
  • refactor:重构代码(既没有新增功能,也没有修复 bug)
  • perf:性能, 体验优化
  • test:新增测试用例或是更新现有测试
  • build:主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交
  • ci:主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交
  • chore:不属于以上类型的其他类型,比如构建流程, 依赖管理
  • revert:回滚某个更早之前的提交

GitHub

如出现 Please enter a commit message to explain why this merge is necessary.(请输入提交消息来解释为什么这种合并是必要的)

git 在 pull 或者合并分支的时候有时会遇到这个界面。可以不管(直接下面 3,4 步),如果要输入解释的话就需要:

1.按键盘字母 i 进入 insert 模式

2.修改最上面那行黄色合并信息,可以不修改

3.按键盘左上角"Esc"

4.输入":wq",注意是冒号+wq,按回车键即可

参考

上次更新: 8/13/2022, 9:55:10 AM
Contributors: 九旬