zoukankan      html  css  js  c++  java
  • git的使用

    http://rogerdudler.github.io/git-guide/
    https://www.atlassian.com/git/tutorials/
    

    配置git ssh-keygen -t rsa -C "***@***.com(邮箱)" cd .ssh subl id_rsa.pub 之后在页面添加key 或者 ssh-keygen -t rsa -C "***@***.com(邮箱)" cat ~/.ssh/id_rsa # set user name git config --global user.name '***(name)' # set user email git config --global user.email '***@***.com(邮箱)' # set file mode git config --global core.filemode false # set content editor git config --global core.editor vim # set diff tool git config --global merge.tool vimdiff # set ui color git config --global color.ui auto cd .. cd Traning/ --- 自己建的文件夹
    遇到
    fatal: Out of memory? mmap failed: No such device
    卸载git重装, 先移除.ssh文件和.gitconfig, sudo apt-get remove git
    遇到Agent admitted failure to sign using the key
    执行:  ssh-add 出现Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa) 即解决 git clone git@git.***.com.cn:projectName/***.git(项目路径,git项目里会提供) git clone -b develop git@git.***.com.cn:projectName/***.git ------------------------------------------------ git提交 ls cd 文件夹/ git status git stash git pull origin develop git stash pop gitg git commit -m "" git push origin deveop 只有自己一个分支时使用 git add -A git commit -m "comment..." git pull -r git push origin ***(name) ----------------------------------------- # create branch(git checkout -b branchName) git branch ***(name) git config --global user.name ***(name) ------------------------------------------ #将develop刚提交的代码插到master分支上 在develop分支上找到刚提交代commitId(b0f1878ee0f3d08669c2bb9094eaf6a534b2dd3d) 在develop分支上git stash,然后git status检查一下, git checkout master git branch查分支,确认在maste分支上 git pull -r再git pull -r确认一下 git cherry-pick b0f1878ee0f3d08669c2bb9094eaf6a534b2dd3d 将你在develop分支修改的插到master分支 gitg 查是否提交上(跟master其他代码在一线上) git push origin master git branch git checkout develop git status git stash pop git branch

    ----------------------------------------------------

    git 多个 commits merge
    方法一:
    1. 提交你现在修改的 gitg添加, git commit
    2. 然后git rebase -i HEAD~2,
    出现类似vi的文字,进行修改, 然后把commit第一个改为 pick,第二个改为squash
    接着wq!保存退出
    (如果你要是合并三个的话,git rebase -i HEAD~3, 把commit第一个,改为 pick,第二三个改为squash)
    3. 如果有冲突:然后git rebase --continue
    4. 如果没有冲突,会在上一个文件保存退出后,显示一个类似vi的文字, 注释一个commit(保留一个commit),保存退出
    5. 最后提交(push): git push -f origin 分支名
    (用-f的原因: git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。=>强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容)
    方法二:
    1. 安装gitg插件
    2. gitg, 将提交的文件移到右边, 第二次提交时选中Amend, git push origin -f 分支

    -----------------------------------------------------------------------

    各种提交问题
    1. commit 但是没有push,想要返回到commit 之前: git reset HEAD^
    2. git reset --soft 702219d7b0c1100dc86f8c207246b054571705ed
    soft:修改的代码仍然存在
    702219d7b0c1100dc86f8c207246b054571705ed:返回到的版本
    3. merge分支的冲突:
    git stash, git checout develop, git pull -r, git checkout branchA, git rebase develop,
    解决冲突, git add, git rebase --continue, git push origin branchA
    4. pull冲突:
    解决冲突, git add, git stash, git pull -r, git stash pop
    5. pop出指定的stash
    git stash apply {{stashid}}
    apply 只会读取暂存区的数据,通过apply后,暂存区的数据仍然存在;而pop是取出最新的一次暂存数据,取出后,这次数据就不会存在于暂存区中了

    6. 还原为前一次的状态:git reset --hard origin/master 

     git clean

    git clean 小结 + rm

    删除 一些 没有 git add 的 文件;
    
    git clean 参数
    
    -n 显示 将要 删除的 文件 和  目录
    
    -f 删除 文件,
    -df 删除 文件 和 目录 git clean -n 文件 git clean -df 文件 git clean -f 文件
    rm 文件

    git merge提交

    1. git merge whitespace, 如果有冲突,git merge --abort

    2. 合并单条提交

    1. git checkout master  
    2. git cherry-pick 62ecb3  如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。

    3. 合并某个分支上的一系列commits

    在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。这种情况下就不要选择cherry-pick了,rebase 更适合。还以上例为例,假设你需要合并feature分支的commit76cada ~62ecb3 到master分支。

    首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:

     
    1. git checkout -b newbranch 62ecb3  

    然后,rebase这个新分支的commit到master(--ontomaster)。76cada^ 指明你想从哪个特定的commit开始。

    1. git rebase --onto master 76cada^  

    得到的结果就是feature分支的commit 76cada ~62ecb3 都被合并到了master分支。

    git 根据tag创建分支

    在项目中我们需要根据tag创建分支.现将创建步骤总结一下.假设在你的主分支上有一个tag为v1.0,主分支的名字为master.

    git tag -a tag-1.2 -m '创建trunk为tag1.2'

     git push origin tag-1.2

    1.执行:git origin fetch 获得最新.

    2.通过:git branch <new-branch-name> <tag-name> 会根据tag创建新的分支.

    例如:git branch newbranch v1.0 . 会以tag v1.0创建新的分支newbranch;

    3.可以通过git checkout newbranch 切换到新的分支.

    4.通过 git push origin newbranch 把本地创建的分支提交到远程仓库.

    现在远程仓库也会有新创建的分支啦.

  • 相关阅读:
    基础学习总结(四)---内存获取、XML之PULL解析
    基础学习总结(三)--文本、SD卡数据读写
    基础学习总结(二)---认识布局与配置测试环境
    基础学习总结(一)--工程结构与打包过程
    StreamReader和StreamWrite与FileStream区别
    redis笔记
    linux 下文件显示行数
    php判断页面访问是移动端还是pc端
    redis
    判断链接是否为图片
  • 原文地址:https://www.cnblogs.com/floraCnblogs/p/git.html
Copyright © 2011-2022 走看看