git使用基本命令-快速上手

git

基本配置

用户信息

  • 设置

    • git config --global user.name “name”
    • git config --global user.email “email”
  • 查看

    • git config --global user.name
    • git config --global user.email

命令别名

  • 在用户文件夹下新建.bashrc文件,在里面输入
  • alias newname=‘oldname’

本地仓库

获取

  • 在任意位置创建一个空目录(文件夹)作为本地仓库
  • 右键打开git bash
  • 执行git init
  • 创建成功后可以看到文件夹下隐藏的.git目录

基础操作

  • git add 工作区->暂存区

    • git add xxx 添加单个文件可以用|来添加多个文件
    • git add . 添加全部文件
    • 在.gitignore文件中设置不需要git管理的文件
      • 可以写全名,也可以如*.a这种匹配
      • !lib.a lib不能被忽略,要求管理
      • xxx/ 忽略一个文件夹
      • xxx/*.a 忽略文件夹中的一类文件,但不忽略子文件夹中的
      • xxx/**/*.a 全部忽略
      • /xxx忽略根目录下文件/文件夹
  • git commit 暂存区->本地仓库

    • git commit -m ‘注释’
  • git status 检查文件状态

  • git log检查仓库状态(提交记录)

    • 已配置git-log显示更直观简介
  • git reset --hard commitID 版本回退

    • id可以通过git-log查看
    • git reflog 可以查看已经删除了的提交记录
  • git中选择文字就可自动复制,按鼠标中键粘贴

分支

操作

  • git branch 查看分支(也可以用git-log)

  • gti branch xxx 新建分支

  • git branch -d 删除分支(-D强制删除)

    • 切换到别的分支才能删除当前分支
  • git checkout xxx 切换分支

    • git checkout -b xxx 如果分支不存在则会自动创建

    • 一次只能对一个分支进行操作

    • 不同分支可能处于不同的版本

    • head->指向当前的分支

  • git merge xxx 把其它分支合并到当前的分支上

  • git rebase xxx 另一种合并分支的方法,把一个分支直接移动到另一个分支的末端,使得并行开发的任务看起来像线性先后开发的

    • 把当前分支移动到xxx目标分支上

head指针

  • 默认情况下head指针指向当前分支的最新节点
  • git checkout HEAD^表示向上移动一个节点
    • ~n 表示向上移动n个节点
  • 移动分支指向:git brunch -f master HEAD~3
    • 将master分支以到HEAD上3个点的位置
  • 撤销提交:git reset HEAD^1
    • git revert:用于对已经上传的修改进行撤销,即创建一个与修改前内容完全相同的新分支

分支冲突

  • 比如两个分支对同一文件同一处进行了 不同修改,那么合并时就会失败

    • git会在文件中保存两个文件的共同信息,需要手动选择
    • 对文件修改完成,解决冲突后再次add 并commit
  • 命名规范

    • master线上分支(主分支)
    • develop开发分支
    • feature新功能分支
    • hotfix修复分支(修复bug)
    • feature hotfix用后可以删除

远程仓库

配置ssh公钥

  • 生成 ssh-keygen -t rsa
  • 获取cat ~/.ssh/id_rsa.pub
  • 把公钥输入网站
  • 测试连接 ssh -T git@github.com

推送

  • 添加远程仓库 git remote add xxx(名字随便起,通常用origin) xxx(ssh地址)

  • git remote 查看远程仓库

  • 推送 git push (-f强制覆盖) (–set-upstream 推送到远端并建立起和远端分支的关联关系) origin(远端名称) master(选择本地分支)(:远端分支名称(可选))

    • 如git push --set-upstream origin master:master进行绑定

    • 如果已经关联,可以只用git push

    • 用git branch -vv可以查看绑定状态

获取

  • 克隆: git clone ssh地址 name(不显式指出的话会自动按照仓库名称指定)

    • 会生成名称为name的文件夹
    • 第一次获取仓库使用
  • 抓取:git fetch (远端名称)(分支名称)

    • 抓取指令是将仓库里的更新都抓取到本地,不进行合并。

    • 更新的是远程分支,而不是本地正在使用的分支,还要进行合并操作。

    • git merge origin/master合并。

    • 不指定分支时会抓取所有分支。

  • 拉取:git pull (远端名称)(分支名称)

    • 将修改拉取到本地并自动进行合并,等同于fetch+merge

解决合并冲突

  • 产生:A,B修改同一文件的同一处,A先修改完后push到远程仓库,而B修改后已经提交到本地仓库,由于远程库已经发生了更改,因此要先拉取远程仓库合并后再推送,在合并过程中就会发生冲突。
  • 解决冲突后再add,commit即可
    • 可以直接 git commit (不-m)然后直接wq

ide中使用(待补充)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值