1.
在 Settings 中找到 Version Control, 添加 Project Path, 就可以在代码编辑器的左侧右键点击选择“Annotate” 查看,也可以右键代码查看 git log. 该功能与git blame 类似
2.各种乱码的处理
https://blog.csdn.net/kl222/article/details/32903495
切换分支时,可以输入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'
当前的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 输入后 双击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 表示直接将当前的提交推到当前分支对应的远程分支上
列如:
当前切到master分支
git checkout master master 分支对应的远程分支是 remotes/origin/master
操作一个提交后
执行git push 就会将当前的提交推到远程分支
如果执行git push origin HEAD:分支名(与远程仓库对应的分支) 表示将当前的提交推到指定的远程分支
当拉取了一个远程项目到本地后(git clone ),
可以git fetch 所有的远程仓库到本地
然后git checkout 双击tab键,选择对应的分支
就会创建与远程分支相对应的本地分支
后续如果要需要单独fetch某一个分支时,再具体操作