git使用命令行操作时有提示,多注意观察分析可以加深理解。
如何处理merge问题
可以用 git diff 查看两个分支的区别进行 merge 修改后的文件需要 commit 用git log查看会发现本地仓库指针版本比远程仓库新需要push。
git仓库操作
查看远程仓库路径——git remote -v
添加远程仓库——git remote add origin <你的项目地址> //注:项目地址形式为:https://gitee.com/xxx/xxx.git或者 git@gitee.com:xxx/xxx.git
删除远程仓库——git remote rm origin
本地仓库关联远程仓库(有问题查看下文问题2)
1、git init
2、git remote add origin <你的项目地址> //注:项目地址形式 为:http://git.oschina.net/xxx/xxx.git或者 git@git.oschina.net:xxx/xxx.git(需要先在页面创建远程仓库)
3、$ git push -u origin master
git分支操作
查看本地分支 git branch 查看远程分支 git branch -r 查看所有分支 git branch -a
创建新的本地分支 git branch new_branch(本地名)
创建新的本地分支并切换 git checkout -b new_branch(本地名)
创建远程分支 git push origin new_branch(本地名):new_branch(远程名 可以不同)
注意:通过本地命令创建远程分支时需要关联,不然无法push或者使用远程地址加分支的参数进行push(git会有提示)。
关联远程分支 git branch -- set-upstream-to = origin/new_branch(远程名)
删除本地分支 git branch -d new_branch(本地名) 注意:需要切换到其它分支,不然无法删除。
删除远程分支 git push origin :newbranch(远程名) 或者 git push origin --delete newbranch(远程名)
git clone 指定分支
git clone -b 分支名称 git地址
git clone 命名目录名
git clone git地址 目录名
git 回退(撤销更改)
git工作区,暂存区撤销时
还没有git add 使用该指令进行撤销: git checkout -- fileName
已经git add还没有commit:1.git reset HEAD fileName + 2.git checkout -- fileName
已经commit版本回退时,reset会删除版本记录(可以在远程历史中找到被删除的commitid 进行恢复),revert重做对应版本。
git reset --hard commitId 此时本地仓库版本晚于远程仓库 需要强制push 使用 git push -f
git revert -n commitId 此时对应版本重做 需要重新commit push
git push origin 和 git push -u origin master 区别
$ git push origin
上面命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。
$ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
不带任何参数的git push,默认只推送当前分支,这叫做simple方式。此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。
git删除(暂存区和工作区删除)
【原创】Git删除暂存区或版本库中的文件 - cposture - 博客园
仅仅删除暂存区(可以理解为撤销add) git rm --cache 文件名 还有一种情况就是未添加的文件还修改了 需要进行撤销(git restore --staged filepath)或者加 -f强制删除
删除暂存区和工作区 git rm -f 文件名
git官网下载太慢解决方法
https://blog.youkuaiyun.com/weixin_44198965/article/details/99686507
问题1:remote: Incorrect username or password ( access token )
remote: Incorrect username or password ( access token )_风叶翩翩的博客-优快云博客 windows凭据修改对应网站
问题2:refusing to merge unrelated histories
记Git报错-refusing to merge unrelated histories_铁乐与猫的博客-优快云博客
git pull origin master --allow-unrelated-histories
如果要想完全掌握git还是要从理论基础出发,如下:
具体参考:Git 教程 | 菜鸟教程
先要理解上面的图。注意点:
pull时必须将工作区的内容提交到本地仓库。pull = fetch + merge
fetch时并没有将远程仓库分支的东西拉到本地仓库分支,只是在本地仓库维护了一个远程分支也可以理解为一个版本(避免上图误解),需要merge(merge指的是分支间的操作 并不是工作区 暂存区相互操作),在此之前也需要把工作区的内容提交到本地仓库分支。