git操作

1.

在 Settings 中找到 Version Control, 添加 Project Path, 就可以在代码编辑器的左侧右键点击选择“Annotate” 查看,也可以右键代码查看 git log. 该功能与git blame 类似

2.各种乱码的处理

https://blog.csdn.net/kl222/article/details/32903495

git check

切换分支时,可以输入git check 后双击tab键,找到对应的分支

git checkout

beta FETCH_HEAD HEAD master ORIG_HEAD origin/beta origin/master origin/release release

git checkout beta (如果beta分支不存在,那么就会重新创建beta分支并与远程分支绑定,并切换到该分支)

git checkout beta

Branch beta set up to track remote branch beta from origin.

Switched to a new branch 'beta'

git pull

当前的branch与远程分支有差异时

差异分两种

1)当前分支有新的内容修改,但是这个内容还未进入本地仓库时,即修改还在工作区或者index/stage时,

这个时候如果执行git pull 会提示你Please commit your changes or stash them before you merge

简单来说就是要么将当前的修改做成提交,要么将当前的修改放入暂存里(git stash)

如果直接提交了再执行git pull 有可能会产生冲突,需要解决冲突,

所以办法就是:

a )git stash   先暂存当前的修改(如果已经commit了,那么直接 git reset HEAD^ 先取消提交再git stash)

b) git pull 拉取远程仓库的代码

c) git stash pop 取出暂存

d) 进行后续操作

那么对git pull 的理解就是  git fetch + git merge (操作针对于工作区)

git fetch

git fetch 不加参数 表示直接从服务器拉取所有远程分支到本地仓库

git fetch 输入后 双击tab键 将会输入提示参数 , 然后再双击tab键 又会出提示 ,然后选择

一个你想fetch的远程分支

git fetch

git fetch origin

git fetch origin

beta:beta HEAD:HEAD master:master release:release

选择 release:release

git fetch origin release:release

就会fetch  release所对应的远程代码,如果当远程分支还没有本地对应的branch

那么将会自动创建一个,本地分支与该远程分支绑定;如果存在那么就会直接执行fetch

列如:

$git fetch origin release:release

From github.com:twentyfourKing/JustTest

* [new branch] release -> release

但是有个问题,当git fetch origin release:release  同步远程代码时,当前分支不能在所要同步的分支上不然就会出错

如下:(下面的指令就是当前分支在release然后有执行fetch)

git fetch origin release:release

fatal: Refusing to fetch into current branch refs/heads/release of non-bare repository

所以总结而言就是:要fetch一个指定的远程分支,那么执行指令时需要切到其他分支,然后再执行fetch

这样就可以同步远程到本地仓库,同时同步远程分支所对应的本地仓库和远程仓库

git push

如果在当前分支直接执行 git push 表示直接将当前的提交推到当前分支对应的远程分支上

列如:

当前切到master分支

git checkout master   master 分支对应的远程分支是 remotes/origin/master

操作一个提交后

执行git push 就会将当前的提交推到远程分支

如果执行git push origin HEAD:分支名(与远程仓库对应的分支) 表示将当前的提交推到指定的远程分支

关于版本的切换

当拉取了一个远程项目到本地后(git clone ),

可以git fetch 所有的远程仓库到本地

然后git checkout 双击tab键,选择对应的分支

就会创建与远程分支相对应的本地分支

后续如果要需要单独fetch某一个分支时,再具体操作

results for ""

    No results matching ""