• git常用操作


    分支开发、多人协作以及更多见 参考链接

    提交更新

    git status
    git add -A	//将文件添加到缓存
    git commit -m "---" //添加所有修改
    git pull	//从仓库拉取最新代码
    git push	//提交缓存代码到仓库 
    
    
    
      
    【Already up to date】
    【如果是Every thing up-to-date 重新从git status走一遍】
    
    提示:
    1.第一次提交时,可能会在commit命令之后要登录,登录后就能继续命令了。
    git config --global user.email "XXX@qq.com"
    git config --global user.name "XXX"
    
    2.提交之前,最好先在本地 npm run build一下,确保本地编译没问题
    

    git创建分支开发与合并

    git checkout -b dev
    // 表示创建分支并切换 到dev 等于 
    // git branch dev	表示创建分支
    // git checkout dev	表示切换分支
    // 合并分支 ,先切换到master上
    git merge dev //合并
    git branch -d dev //删除dev分支
    
    git merge --no-ff -m "注释" dev 
    //使用参数 -no-ff 禁用fast forward模式
    # 1.查看所有分支
    git branch -a
    # 2.查看当前使用分支(结果列表中前面标*号的表示当前使用分支)
    git branch
    # 3.切换分支
    git checkout 分支名
    

    放弃某个文件的修改

    // 情况1 未添加到缓存区
    git checkout -- readme.md
    // 情况2 已添加到缓存区
    git status //先看一下add 中的文件
    git reset HEAD //如果后面什么都不跟的话 就是上一次add 里面的全部撤销了
    git reset HEAD XXX/XXX/XXX.c //就是对某个文件进行撤销了
    

    放弃本地修改 同步git上最新版本

    git fetch --all
    git reset --hard origin
    git pull
    

    git版本回退

    git log // 查看历史 显示从最近到最远
    git log -pretty=online //git log简洁版显示 只显示版本号和commit信息
    git reflog	//返回所有版本号 包括提交后又回退的
    git reset --hard HEAD^ //返回上个版本
    git reset --hard HEAD^^ //返回上上个版本
    git reset --hard HEAD ~100 //返回前100个版本
    git reset --hard 版本号	//根据版本号回退
    
    
    

    通过git删除某个文件

    rm readme.md	// 删除了本地的readme.md文件 如果想删除git中的commit即可
    

    创建项目

    首先要在文件夹内
    
    git init
    git add .
    git commit -m "first commit"
    git remote add origin http://192.168.XX.XX:3000/xxx/xxx/xxx/xxx.git
    git push -u origin master
    

    从命令行推送现有存储库

    
    git init
    git add -A
    git commit -m "---"
    
    git remote add origin https://github.com/XXX/XXX.git
    git push -u origin master
    git pull origin master --allow-unrelated-histories
    # 允许不相关历史合并 即手动合并冲突
    # 或者 git pull --rebase origin master
    # 如果有冲突记得合并冲突,重新
    # git add -A
    # git commit -m "merge"
    # git pull origin master --allow-unrelated-histories
    git push --set-upstream origin master
    # 或者 git push -u origin master
    
    

    参考

    如何用命令将本地项目上传到git

    查看远程仓库地址

    git remote show origin
    

    创建忽略文件.gitignore

    1、在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。
    
    2、输入 touch .gitignore ,生成“.gitignore”文件。
    
    3、在”.gitignore” 文件里输入你要忽略的文件夹及其文件就可以了。(注意格式)
    

    修改远程仓库地址

    方法有三种:
    1.修改命令
    git remote origin set-url [url]
    
    
    2.先删地址后加地址 
    # 本地干净情况
    git remote rm origin
    git remote add origin [url]
    git branch --set-upstream-to=origin/master master
    git pull
    # 本地有未提交代码
    git remote rm origin
    git remote add origin [url]
    git add -A
    git commit -m "--"
    git push -u origin master 
    # 本地未提交代码 我没试过这样
    git remote rm origin
    git remote add origin [url]
    git branch --set-upstream-to=origin/master master
    git add -A
    git commit -m "--"
    git pull
    git push
    
    3.直接修改config文件
    

    远程仓库改名了,本地git修改地址

     git remote 
     # 查看是否有远程仓库
     git remote rm origin
     # 删除本地git中远程仓库地址
     git remote
     git remote add origin https://new_url
     git push --set-upstream origin master
     
     #有未提交代码 
     #Branch 'master' set up to track remote branch 'master' from 'origin'.
     # 重新走一遍正常提交流程就好
    

    多仓库同步遇到的问题

    同步多个仓库

    #添加同步地址
    git remote set-url --add origin https://gitee.com/rza/sxps/
    #查看补充后的远程地址
    git remote --verbose
    git remote show origin
    #推送代码
    git add .
    git commit -m "github & gitee 同步推送和分发"
    git push origin master
    
    
    

    nginx代理后推代码报错

    error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
    fatal: the remote end hung up unexpectedly
    fatal: the remote end hung up unexpectedly
    

    参考

    server{
        listen 80;
           server_name git.balabiu.com;
           	#加上这一行 client_max_body_size
           client_max_body_size 100m;
           location /{
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $http_host;
                proxy_pass http://127.0.0.1:5100;
            }
    }
    

    git分支相关

    参阅

    git push代码到远程新分支

    git push origin master:my_remote_new_branch 
    #远端即可创建新的分支my_remote_new_branch,提交本地修改 
    

    强制推送

    git push -f origin master
    

    git本地多账户管理

    step1

    git-bash进入git gui

    step2

    使用cd ~/.ssh可以查看是否已配置SSH .如无,则为空

    也可以C:Users【USER_NAME】.ssh路径下查看。

    step3

    生成几个本机ssh

    ssh-keygen -t rsa -C "dpt_acc"
    ssh-keygen -t rsa -C "team_acc"
    ssh-keygen -t rsa -C "gitee_acc"
    ssh-keygen -t rsa -C "github_acc"
    # 然后会让你输入文件名和2次密码
    dpt_id_rsa
    team_id_rsa
    gitee_id_rsa
    github_id_rsa
    

    step4

    dpt_id_rsa.pub,team_id_rsa.pub里的内容复制到公司、github、gitee的ssh里面

    step5

    /.ssh路径下配置config文件

    #compay
    Host xxxxx.com
    HostName xxxxx.com
    User compay_account
    IdentityFile ~/.ssh/dpt_id_rsa
    
    #website
    Host github.com
    HostName github.com
    User website_account
    IdentityFile ~/.ssh/team_id_rsa
    
    #blog
    Host gitee.com
    HostName gitee.com
    User blog_account
    IdentityFile ~/.ssh/gitee_id_rsa
    

    Host: 服务器
    HostName: 主机名或域名,建议使用域名
    User: 用户名或者邮箱
    IdentityFile: rsa文件路径

    后续使用git,会通过config文件来自动选择账号。

    参考

    git SSH配置

    本地管理多个git账号

    gitee生成/添加SSH公钥

    git push 问题:committer 'xxx (x)' does not match your user account

    添加到暂缓区

    git stash
    // 将当前工作隐藏,最好先add 不然可能恢复的时候没有
    
    git stash apply
    // 恢复隐藏
    
    git stash drop
    // 删除stash
    

    参数

    usage: git add [<options>] [--] <pathspec>...
    
    -n, --dry-run dry run
    -v, --verbose be verbose
    
    -i, --interactive interactive picking
    -p, --patch[=<patch-mode>]
    select hunks interactively
    -e, --edit edit current diff and apply
    -f, --force allow adding otherwise ignored files
    -u, --update update tracked files
    --renormalize renormalize EOL of tracked files (implies -u)
    -N, --intent-to-add record only the fact that the path will be added later
    -A, --all add changes from all tracked and untracked files
    --ignore-removal ignore paths removed in the working tree (same as --no-all)
    --refresh don't add, only refresh the index
    --ignore-errors just skip files which cannot be added because of errors
    --ignore-missing check if - even missing - files are ignored in dry run
    --chmod (+|-)x override the executable bit of the listed files
    

    推荐书籍

    Jon Loeliger 、Matthew McCullough 《Git 版本控制》第二版

    参考链接

    Git使用教程:最详细、最傻瓜、最浅显、真正手把手教! (https://mp.weixin.qq.com/s/uHZWyeEIP3lihvyD2vZAEA)

    mark cnblog不支持以下【参考文献写法】写法

    [Git使用教程]: https://mp.weixin.qq.com/s/uHZWyeEIP3lihvyD2vZAEA	"来自微信"
    
  • 相关阅读:
    (TOJ1004)渊子赛马
    (TOJ1063)养兔子
    (TOJ3260)Palindromes
    (TOJ1070)Least Common Multiple
    (TOJ1215)数据结构练习题——合并表
    (TOJ1481)C语言实验题——鞍点
    (TOJ1496)C语言实验题——字符过滤
    (TOJ1003)1、2、3、4、5...
    (TOJ1490)C语言实验题——合法的C标识符
    (TOJ2804)Even? Odd?
  • 原文地址:https://www.cnblogs.com/marvelousone/p/12040341.html
Copyright © 2020-2023  润新知