git笔记

常规操作

  • 初始化本地仓库
git init
  • 手动拷贝文件,并执行add命令
git add 文件夹1/ 文件夹2/
  • commit命令
git commit -m “注释”
  • push命令
git push -u origin master

切换分支

  1. 执行git pull,查看是否有新的分支。
    在这里插入图片描述如果没有新的分支形成,执行git branch -a,查看仓库里面所有的分支(包括我们本地分支和远端分支),方便我们找到自己要提交代码的分支。

  2. 切换分支
    执行git checkout -b 分支名 origin/分支名,出现switch to a new…表示切换成功。
    在这里插入图片描述

  3. 执行git branch再次确认当前分支,标绿的为当前分支。

  4. 依次执行git status,git add .,git commit -m “说明”,git push

  5. push成功后务必记得切换回原本分支,git checkout 分支名

常见问题

Your local changes to the following files would be overwritten by checkout

问题描述

使用git checkout命令切换分支时由于当前分支有未跟踪的文件,导致切换失败。

D:\Android\***\*****>git checkout master
error: Your local changes to the following files would be overwritten by checkout:
        app/build.gradle
Please commit your changes or stash them before you switch branches.
Aborting

提示信息写的比较清楚:
当前分支有未跟踪的文件,checkout命令会覆盖它们,请缓存(stash)或者提交(commit)。

解决方案

有两种选择:A保存修改;B放弃修改
选择A:未跟踪文件的内容改动很重要,保存修改
两种方法:按照信息提示,分别是:缓存(stash)或者提交(commit)

  • 方法①:存到暂存区
git add .
git stash 
// 取出的时候使用 
git stash pop
  • 方法②:发起一个commit 存到提交历史
git add .
git commit -m "commit message"

选择B:未跟踪文件的内容改动不重要,放弃修改
两种方法:①清除修改;②强制分支切换

  • 方法①:清除未跟踪文件【推荐做法】
git clean -n         //这个是清除文件预览
git clean -f         //强制清除文件

Git出现 fatal: Pathspec ‘xxx’ is in submodule

解放方案

发现要添加的文件目录下面并没有.git文件
git rm -rf --cached 出问题的路径

git rm -rf --cached vendor/crazyfd/yii2-qiniu ()
git add vendor/crazyfd/yii2-qiniu/*

git pull 拉取代码报错error: Your local changes to the following files would be overwritten by merge:

Please commit your changes or stash them before you merge.

解决方案

  1. git stash 把文件暂存
  2. git stash list 查看暂存的列表
  3. git pull(拉取)
  4. git stash pop(把暂存的最新的一份弹出来)
    去代码里删除多余的代码,然后页面会恢复正常

Git从远程仓库拉取分支到本地

  • 查看本地分支:
git branch
  • 查看远程分支:
git branch -a
  • 从远程仓库里拉取一条本地不存在的分支:
 git checkout -b 本地分支名 origin/远程分支名

这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来,例如远程仓库里有个分支develop,我本地没有该分支,我要把develop拉到我本地:

git checkout -b develop origin/develop

若成功,将会在本地创建新的分支develop,并自动切到develop分支上
若拉取不成功,如果出现提示:

fatal: Cannot update paths and switch to branch 'dev2' at the same time.
Did you intend to checkout 'origin/dev2' which can not be resolved as commit? 
  • 则要先执行:
git fetch

然后再执行:

git checkout -b 本地分支名 origin/远程分支名

git checkout用法

Switch branches or restore working tree files

$ git checkout -h

usage: git checkout [<options>] <branch>
   or: git checkout [<options>] [<branch>] -- <file>...

    -q, --quiet           suppress progress reporting
    -b <branch>           create and checkout a new branch
    -B <branch>           create/reset and checkout a branch
    -l                    create reflog for new branch
    --detach              detach HEAD at named commit
    -t, --track           set upstream info for new branch
    --orphan <new-branch>
                          new unparented branch
    -2, --ours            checkout our version for unmerged files
    -3, --theirs          checkout their version for unmerged files
    -f, --force           force checkout (throw away local modifications)
    -m, --merge           perform a 3-way merge with the new branch
    --overwrite-ignore    update ignored files (default)
    --conflict <style>    conflict style (merge or diff3)
    -p, --patch           select hunks interactively
    --ignore-skip-worktree-bits
                          do not limit pathspecs to sparse entries only
    --ignore-other-worktrees
                          do not check if another worktree is holding the given ref
    --recurse-submodules[=<checkout>]
                          control recursive updating of submodules
    --progress            force progress reporting


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值