git 的使用,及其基本指令。

git 的使用,及其基本指令。

文章目录


(1) 初始化本地仓库:
  • git init
(2) 配置用户名和密码:
(3) 配置全局的用户名和密码:
  • git config --global user.name "zzq"

  • git config --glabal user.email "123@qq.com"

  • global 表示在当前机器中所有的git仓库中都生效

(4) 删除配置
  • git config --unset user.name
  • git config --unset user.email
(5) 删除全局配置
  • git config --global --unset user.name
  • git config --global --unset user.email
(6) 列出当前本地仓库中的所有配置项
  • git config -l

修改:创建,删除,修改。

git 追踪管理的其实是修改,而不是文件。

(7)三板斧(add, commit, push)
  • git add . ------从本地工作区添加到暂存区
  • git status ------查看提交状态
  • git commit -m "提交日志信息" ------从暂存区添加到版本库
  • git push ------从版本库添加到远程仓库
(8)查看日志
  • git log ------查看所有日志

  • git log --pretty=oneline ------日志按一行打印

  • git cat-file -p [commitID] ------打印commitID对应的文件

(9)查看目前暂存区和工作区文件的差异
  • git diff [filename]
  • git diff HEAD --[filename] ------查看版本库和工作区文件的区别

(10)版本回退
  • git reset [--soft | --mixed | --hard] [HEAD]
  • 本质回退的是版本库中的内容,还可以回退到当前版本。
  • --soft 只回退版本库的内容
  • --mixed (默认) 回退版本库和暂存区的内容
  • --hard(慎用) 版本库,暂存区,工作区全部回退
工作区 暂存区 版本库 选项 描述
git world git world git world
git world git world git --soft 只回退版本库
git world git git --mixed(默认) 回退版本库和暂存区
git git git --hard(慎用) 全部回退
  • git reflog (后悔药)------查看所有的提交记录
(11)撤销
工作区 暂存区 版本库 描述 如何撤销
xxx code 只在工作区写,没有add 和commit git checkout --[filename]
xxx code xxx code add, 但没有commit git reset
xxx code xxx code xxx code add + commit 1. 大前提条件, 都没有push到远程仓库2.git reset
  • git checkout -- [filename]

  • git reset --mixed HEAD [filename] ------回退到当前版本

  • git reset --mixed HEAD**^** [filename] ------回退到上一个版本


(12)删除文件
  • git rm [filename] ------删除工作区和暂存区的文件

  • git commit -m "xxxx"

(13)分支管理
  • git branch ------查看所有分支

  • git branch dev ------ 创建dev分支

  • git checkout dev ------切换到dev分支

  • git merge dev ------将dev分支合并到当前分支

  • git branch -d dev ------删除dev分支

  • git branch -D dev ------强制删除dev分支

  • git checkout -b dev1 ------ 创建并切换到dev1分支

(14)合并冲突
  • 合并冲突需要手动解决,并且要进行一次add和commit。

    <<<<<<<HEAD
    ....// 这之间的是当前分支的内容
    =======
    ....// 这之间的是dev分支的内容
    >>>>>>>dev
    
  • git log --graph --abbrev-commit ------以图示打印

  • git merge --no-ff -m "这是最新一次提交的日志" dev ------(--no-ff)表示不使用fastforword,让合并时产生一次新的提交记录

    fast forword看不出来最新的提交到底是merge进来的还是正常提交的

    no-ff 表示不使用fast forword

  • git merge --no-ff -m "让ff变成no-ff" dev ------在合并分支时,手动将fast forword变成no-ff

(15)Bug分支
  • git stash ------将本分支新增的内容暂存,并使还原到上次commit 的地方。前提是:本分支新增的内容还未commit提交。

  • git stash list ------ 查看暂存的内容

  • git stash pop ------ 回复暂存的内容


(16)远程操作
  • git 是分布式版本控制系统

  • git remote -v ------查看有哪些权限,比如fetch拉取权限和push推送权限

    origin 远程仓库默认的名字

(16)使用SSH协议克隆到本地仓库
  • 创建SSH key。在主目录下看看是否有.SSH目录,如果有再看看这个目录下有没有id_rsa(私钥),id_rsa.pub(公钥)这两个文件,如果有了直接跳到下一步,没有则需要创建SSH key:
  • ssh-keygen -t rsa -C "1234@qq.com"。 再一路回车使用默认值即可
(17)push(推送) 和 pull(拉取)
  • git push origin master:master ------ origin表示远程,第一个master表示本地分支的master,第二个表示远程的master。
  • git pull origin masert:master ------ origin 表示远程,第一个master表示远程分支的master, 第二个表示本地的master.
  • pull 指令表示将远程从库的内容拉取到本地,并与本地分支合并。pull : 拉取+合并。

(18)配置git, .gitignore文件
  • .gitignore 文件里面写要忽略的文件名。

  • *.so, *.init 表示再add时,忽略以.so和.init 为后缀的文件。

  • git add -f test.so ------强制添加test.so 文件

  • 不建议强制添加。应该在文件里添加 !test.so即可,表示不忽略test.so 这个文件。

  • git check-ignore -v d.so ------ 查看为什么d.so文件会被忽略。

  • git config --global alias.st 'status' ------ 给 status 取别名为st

  • git log --pretty=oneline --abbrev-commit ------ (--pretty=oneline)表示打印一行,(--abbrev-commit)表示打印出短的commitID。


(19)标签
  • 标签是对commit ID 做别名。

  • git tag [tag_name] ------ 在当前分支上给最新一次commit打标签。

  • git tag [标签名] [commit ID] ------ 给指定commit ID 打标签。

  • git tag -a v1.0 -m "描述信息" ------ 给标签加描述信息。

  • git show [标签名] ------ 查看标签的描述信息。

  • git tag ------显示所有标签。

  • git tag -d [标签名] ------ 删除标签

(20)推送标签
  • git push origin v1.0 ------ 将本地的v1.0 标签推送至远端。
  • git push origin --tags ------ 推送本地所有标签。
  • git push origin:v1.0 ------ 先在本地删除v1.0 标签,在执行该指令,使远端也删除该标签。

(21)多人协作开发
  • git branch ------查看本地分支

  • git branch -r(remote) ------ 查看远程分支

  • git branch -a(all) ------ 查看本地和远程的所有分支

  • git checkout -b dev origin/dev ------ 建立本地dev分支,并和远程dev分支建立连接。

  • git branch -vv ------ 查看本地和远程分支建立的连接。

  • 建立连接的目的是为了能够使用简短的指令。

  • git push origin:master --> git push

  • git branch --set-upstream-to=origin/dev dev ------ 将远程的dev分支和本地的dev分支建立连接。

  • git push origin "分支名" ------ 远程没有该分支,本地创建并推送。

(22)git pull
  • 拉取分支的内容
  • 拉取仓库的内容,如:本地没有的分支等。
  • git remote show origin ------ 查看远程分支的情况。
  • 在远程删除了某些分支,但本地仍然可以看到,解决办法:
  • git remote prune origin ------ 修剪在远端已经不存在的分支。
(23)合并分支
  • 如何将dev分支 合并到 master分支?(建议)
    1. 建议先在dev分支下,合并master。有冲突再解决。
    2. 再回到master分支,合并dev。
相关推荐
铁头乔8 小时前
IoTDB 断电后无法启动 DataNode,日志提示 Meet error while starting up
数据库·开源·时序数据库·iotdb
1379003409 小时前
Git 设置代理
git
AI服务老曹9 小时前
通过感知、分析、预测、控制,最大限度发挥效率的智慧油站开源了
人工智能·开源·自动化·音视频
Web极客码11 小时前
WordPress“更新失败,响应不是有效的JSON响应”问题的修复
json·github·wordpress
邹霍梁@开源软件GoodERP12 小时前
整合Salesmart/WhatsApp、开源Odoo模块和Deepseek AI能力,实现针对国外客户的智能客服和个性化推荐服务
运维·人工智能·开源
木昜先生13 小时前
还在手动配置开发环境?vfox+chsrc真香!
开源
xiaodunmeng15 小时前
sourcetree gitee 详细使用
git
是懒羊羊吖~15 小时前
图床 PicGo+GitHub+Typora的下载安装与使用
经验分享·笔记·github·typora·picgo
说私域16 小时前
私域流量运营中用户价值提升策略研究——以开源AI智能名片2+1链动模式与S2B2C商城小程序为例
人工智能·小程序·开源·流量运营
LostSpeed17 小时前
git,gitea - tool - creat Gitea Empty Rep Dir
git·gitea