git笔记

作者: 2f1b6dfcc208 | 来源:发表于2017-12-17 20:31 被阅读23次
    • 本机错误:fatal: unable to access 'https://github.com/Hfimy/xxx.git/': Failed to connect to www.proxy.com port 8080: Timed out
      代理问题
      查询当前代理: git config --global http.proxy
      取消代理设置: git config --global --unset http.proxy

    • 命令:git add .
      报错:

    an editor opened by 'git commit'. Please make sure all processes
    are terminated then try again. If it still fails, a git process
    may have crashed in this repository earlier:
    

    原因:通常由于同时有两个进程执行了git操作,造成了冲突导致git被某个进程锁住了。
    解决方法:rm -f .git/index.lock

    • 命令:git pull
      报错:
    error: Your local changes to the following files would be overwritten
    by merge:server/models/lc.json
    Please commit your changes or stash them before you merge.
    

    原因:更新下来的内容与本地修改的内容有冲突,先提交你的修改或者将本地修改暂时存储起来
    解决方法

    1. 并入远程仓库的修改,解决冲突合并
      git stash 先将本地修改暂存起来,git stash list可以查看暂存信息
      git pull 拉取远程代码
      git stash pop 还原暂存信息
      系统会自动合并修改的内容,但需要手动修改冲突,可使用 git diff -w +文件名确认代码是否自动合并了,然后修改冲突内容

    2. 将远程仓库的修改完全覆盖本地工作版本
      git reset --hard HEAD^
      git pull

    • 当先创建本地存储库时,与远程仓库(空仓库,没有readme的commit)建立连接
    git init
    git remote add origin <repository url>
    git pull origin master 
    ...add and commit here...
    git push -u origin master (使用-u 参数指定origin为默认主机,后面就可以不加参数使用git push)
    
    • 新建gh-pages分支并提交master部分文件
    git checkout -b gh-pages  //新建gh-pages分支
    git branch  //查看当前所在分支
    git checkout master //切换到主分支
    git subtree push --prefix=dist origin gh-pages  //将主分支的dist目录下的文件推送到远程gh-pages分支下
    

    git有四个区的概念:

    • workspace 工作区
    • stage 暂存区
    • local repository 本地仓库
    • remote repository 远程仓库

    5种状态:

    • 未修改 origin
    • 已修改 modified
    • 已暂存 staged
    • 已提交 committed
    • 已推送 pushed

    检查修改:
    已修改未暂存 - git diff
    已暂存未提交 - git diff --cached
    已提交未推送 - git diff master origin/master

    撤销修改:
    已修改未暂存 - git checkout . || git reset --hard
    已暂存未提交 - git reset; git checkout . || git reset --hard
    已提交未推送 - git reset --hard origin/master
    已推送 - git reset --hard HEAD^

    git 提交代码

    列出本地所有分支

    git branch
    

    列出远程所有分支

    git branch -r
    

    列出所有本地分支和远程分支

    git branch -a
    

    创建分支,但仍然停留在当前分支

    git branch <branch>
    

    创建分支,并切换到该分支

    git checkout -b <branch>
    

    切换到指定分支

    git checkout <branch>
    

    合并分支到当前分支

    git merge <branch>
    

    删除分支

    git branch -d <branch>
    

    删除远程分支

    git push origin --delete [branch-name]
    git branch -dr [origin/dev]
    

    git checkout <branch> 从master切换到开发分支上
    git merge origin master ,拉取远程仓库最新的代码合并进当前分支,(先更新本地的主分支至最新)
    git add . ,追踪文件的变化
    git commit -am '备注信息', 将代码提交到本地仓库
    git push ,本地仓库代码推送到远程仓库,第一次需执行git push --set-upstream origin <branch>来创建远程分支
    提交pull request,管理员审核

    git status 查看当前状态
    git diff 查看具体变化(q退出)
    git difftool 查看原来的文件和修改后的文件对比

    相关文章

      网友评论

          本文标题:git笔记

          本文链接:https://www.haomeiwen.com/subject/jesmrxtx.html