git命令

git config

  • git --version

    git版本号

  • git config --list

    查看一些配置(全局),到本地仓库目录下查看的是当前仓库的配置

  • git config --global user.name '用户名'

    设置全局用户名,user.email全局邮箱

    --local或者什么也不写,设置当前仓库的用户名,邮箱

  • git log

    查看提交记录

  • git status

    查看内容修改信息

  • git config --global alias.st status

    为status设置别名st

  • git config --global pull.rebase true

  • cat ~/.gitconfig

    查看全局的配置文件内容

  • git config --list --global

    查看全局git配置。读取的就是全局的git配置文件.gitconfig

  • git config --list --local

    查看当前仓库的配置。读取的是当前仓库目录下的.git/config文件

  • system级别,global级别,local级别

git clone

  • git clone 地址

    默认克隆master分支

  • git branch

    查看当前分支

  • git clone -b dev 地址

    克隆指定分支,这个表示克隆dev分支

git tag

  • git tag

    查看所有标签

  • git tag -a v0.0.1 -m '信息'

    打标签,一般信息为v0.0.1

  • git push --tag(两个-)

    标签推送到远程

  • git tag -l 'v0.0.*'

    查找以v0.0.开始的版本号

  • git log --pretty=online

    查看提交记录

  • git tag -a v0.0.6 提交id -m '信息'

    在指定提交后打标签

git status

  • 查看文件的更新

    • 已添加至暂存区,待提交(git add后)

    • 已修改,为暂存

    • 未追踪状态的文件

      • 新添加的文件是未追踪的文件

      • 修改和删除是未添加到暂存区的文件

        • 新增test3,删除test2,修改test

        • git add test,test添加到暂存区

        • 此时,test3未追踪,test2未添加到暂存区,test在暂存区等待被提交

        • 如果此时提交,则此时只显示test2和test3文件,test1被提交不再显示

        • 如果test添加到暂存区后不提交,然后直接修改test文件,则test会存在两个地方有状态,提交至暂存区和未提交至暂存区

  • git add test

    将test添加到暂存区

  • git commit -m '信息'

    提交暂存区的内容

  • git add -A

    将所有内容添加至暂存区

git diff

  • 查看文件具体的修改内容(默认查看没有添加到暂存区的内容,所有修改过的文件)

    • +表示新增的内容

    • -表示删除的内容

  • git diff --staged

    查看添加到暂存区的内容的修改

git commit message

  • git log --pretty=oneline

    列出提交记录,并显示提交信息

  • git log --pretty=oneline | grep fix

    过滤内容,查找带有指定信息的提交记录

  • commit message包括三部分,主要使用Header部分

    • Header

    • Body

    • Footer

  • Header部分包括,type(scope): subject(注意冒号后面有一个空格)

  • type类型

    • feat

      新功能

    • fix

      修复bug

    • style

      格式

    • refactor

      代码重构

    • chore

      项目构建

  • scope

    修改代码针对的内容,模块

  • subject

    描述信息

  • git reset --hard 提交记录id

    撤销提交

  • git push origin master --force

    提交到远程仓库master分支

  • git cz

    commitizen,支持angular格式的Commit message

    commitizen init cz-conventional-changelog--save-exact

  • git init

    初始化

  • change log

    npm install -g conventional-changelog

    conventional-changelog-p angular -i CHANGELOG.md -s -r 0

    默认情况下只有type为feat和fix的提交信息才会记录到CHANGELOG文件中

  • git commit -m 'fix(stockout2): 修复拖拽bug'

分支管理

  • git branch

    展示现有的分支,当前分支前面带有*

  • git branch hotfix-406

    创建一个新分支,名为hotfix-406

  • git checkout hotfix-406

    切换分支,切换到hotfix-406

  • git checkout -b self

    创建self分支,并且切换到self分支

  • git branch -d hotfix-406

    删除hotfix-406分支

  • git merge self

    当前分支为dev,将self的内容融入到dev(dev中增加了self的代码)

  • CONFLICT

    发生冲突关键字,查看冲突文件,内容会有冲突标记

远程抓取

  • git fetch

    取得远程最新版本,不更新本地仓库

    git fetch origin dev

  • git merge

    将远程提交的内容更新到本地

  • git pull = git fetch + git merge

    git pull origin dev

远程推送

  • git push 分支

    git push origin dev

  • git push -d

    删除分支

    git push origin -d self

  • git push --tag

    推送tag

git remote

  • git remote -v

    给出远程仓库位置,哪些可以fetch,哪些可以push

  • git remote add

    为本地仓库创建远程连接,有远程仓库了也可以再指向一个

    git remote add origin2 远程仓库地址,注意此时不能使用origin了,因为第一个远程仓库默认使用了origin

  • git remote remove

    删除远程连接,git remote remove origin2

    本地仓库连接一个新的远程仓库,推送一部分信息,然后删除连接,新的远程仓库此时就可以在其他地方建立一个本地仓库了,并且带有一定的信息

git merge

合并

将远程(origin)提交合并到本地,会将远程和本地的提交后面生成一个新的提交

发生冲突会将所有冲突文件列出来,手动添加提交

  • git fetch origin dev

    当前分支test,抓取远程dev分支版本

  • git merge dev

    当前分支test,将dev分支内容合并到test

  • git push origin test

    推送到远程

git rebase

变基 ,衍合

将远程提交合并到本地,本地的提交会生成副本拼接到远程提交的后面

发生冲突只会提示一个冲突,add,git rebase --continue,不用提交

  • git rebase --continue

    解决一个冲突后继续衍合

  • git fetch origin dev

    当前分支test,抓取远程dev分支版本

  • git rebase dev

    合并

  • git push origin test --force

    推送到远程

git撤销

commit之前的撤销

  • 未添加到暂存区的撤销(没执行add操作)

    • git checkout -- test2

      撤销对test2文件的修改

    • git checkout -- .(杠杠点)

      对所有修改文件进行撤销

  • 添加到暂存区的撤销(执行过add操作)

    • git reset HEAD test2

      test2从暂存区撤销,变为未提交至暂存区状态(文件仍然是有改动)

    • git reset HEAD

      将所有文件从暂存区撤销,变为未提交至暂存区状态

提交(commit)之后的撤销

  • git revert 提交id

    撤销这次提交

    偶数次revert后,后恢复到第一次revert之前,表示撤销上一次撤销

git回滚

回退到某次提交,该提交以后的提交都回退

  • git reset -- hard commit-id

    回退到某次提交

  • git ps origin dev --force

    强制推送到远程(覆盖),不可逆

本地项目创建

  • 创建项目

  • git配置

  • 初始化成git项目

    • git init

  • 添加.gitignore文件夹

  • 添加ReadME文件

  • git remote add origin 仓库地址

    将本地仓库连接到远程仓库

  • git remote -v

    查看从哪个仓库fetch和push

  • 使用add,commit,push将本地仓库内容推送到远程

正常开发联调

  • 建立个人分支

  • 文件新增,编辑,删除

  • 状态查看git status

  • 添加 git add

  • 提交 git commit

  • 推送 git push

  • git push --set-upstream origin kingx(远程分支)

    设置push远程的分支,以后可以简写为git push,不用再写远程分支名

项目上线

  • 代码合并到master

  • 打tag

hotfix修复问题

  • 切换新的分支

    • git checkout -b

      一般从master分支拉取一个新分支git ck -b hotfix-0415

  • 问题修复

  • 代码提交

  • 代码合并

  • 重新打tag

  • git branch -d hotfix-o415

    删除本地分支

  • git ps origin -d hotfix-0415

    删除远端的分支

  • git stash

    临时存储(保存现场)

  • git stash pop

    恢复(释放暂存的内容)

多人协作开发

  • 远端会出现多个不同的开发分支

  • 拉取远程公共分支

  • 合并到本地分支

  • 解决冲突

  • 提交

  • 推送

github

  • github代码库工具:Octotree

  • 为别人的仓库做出贡献

    • fork到自己的个人仓库

    • git clone到本地,进行开发,push到个人仓库

    • 提PR,将个人仓库中的项目代码提到要合并的仓库代码中

      • 点击new pull request -> create pull request

    • 接收别人的PR

      • 如果觉得修改的有道理,就点击merge pull request

 

 

 

参考coder分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值