Git使用方法和bug记录

  • 对不同的项目应用不同的git账户进行提交。

git config --global user.name "Your_Username"
git config --global user.email "[email protected]"
加上global参数是应用于全局切换,之后所有项目提交都使用这个账户,去掉global则可以应用于某个特定项目,可以达到到每个项目使用不同的账户提交的效果,并且省去每次切换全局账户的麻烦。

  • 合并分支

  • 解决合并分支时的冲突

报错如下:
<<<<<<< HEAD
测试冲突
=======
建立一个Dev分支,用于平时功能开发
>>>>>>> dev
解决方法:保留需要的部分,然后把注释删除,add之后,然后再commit

Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,必须手动解决冲突,重点是先add 该文件,然后再commit,否则提交不了。如果是在master分支上进行该操作,那么只是master分支做了更改,dev分支相关文件保持原样

  • git版本回退 也用于找回误删文件

不小心删除项目文件,首先git log查看最近的一次提交的commit id复制,然后Ctrl+C退出该模式

Git使用方法和bug记录_第1张图片
image.png

使用 git reset --hard commit id,即可回退到之前版本
image.png

  • cherry-pic的使用

在开发项目的时候,在分支上做了一个多地部署的功能,然后需要把这个功能同步到master分支上,但是没法使用merge功能,因为分支上还修改了其它蛮多文件,直接使用merge会合并所有修改部分,所以使用cherry-pic进行提交

cherry-pic概念:cherry-pick操作过程相当于将某次提交导出为补丁文件,然后在当前HEAD上重放,形成无论内容还是提交说明都一致的提交,提交的过程中可能形成冲突,提交会生成一个新commit id,只是commit的描述和内容与之前完全一样
使用方法:git cherry-pick commit id
  • 多人合作的代码提交注意事项

先本地commit,此时版本肯定是领先的,直接push会覆盖之前版本,需要先pull,合并自己的提交和别人的提交,如果有冲突需要解决冲突,然后再commit,最后push

  • git stash 切换分支时的暂存

经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作。问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点。解决这个问题的办法就是git stash命令。
“‘储藏”“可以获取你工作目录的中间状态——也就是你修改过的被追踪的文件和暂存的变更——并将它保存到一个未完结变更的堆栈中,随时可以重新应用。

TIP:

GitHub不能提交空文件夹 github本身不可以提交空文件夹。那么就需要使空文件夹不为空。
切换分支时,git会提示我们local提交比远程master分支超前

参考文章:

Git 分支管理和冲突解决
Git教程--廖雪峰

  • 多人协作功能 Fork后项目的提交

  1. 创建者创建一个新项目
  2. 协作者fork到自己仓库
  3. git clone这个仓库的地址 将代码coloe到本地
  4. 建立与创建者仓库的远程联系 用于跟踪创建者的更新 pull最新代码

    git remote add upstream "创建者的项目地址"
    git remote -v即可看到两个远程地址,upstream用来pull创建者相关代码,这样可以保持与创建者代码同步

  5. commit本地代码 并且push到自己仓库

Q&A:

1. fork后的项目只能pull,无法push

应该是缺少SSH Keys 遇到Permission denied是因为没有设置SSH


Git使用方法和bug记录_第2张图片
image.png

2. 使用可视化git工具commit到我fork的项目仓库时报错如下

Git使用方法和bug记录_第3张图片
image.png

解决方案如下:


Git使用方法和bug记录_第4张图片
image.png

你可能感兴趣的:(Git使用方法和bug记录)