• git


    Git Download

    几个实用的 git 下载地址:

    托管服务

    Gogs

    参考

    Git Add

    # 添加所有文件跟踪
    git add .
    
    # 假设某个文件不再变更(add时会忽略未改动的文件)
    git update-index --assume-unchanged FILENAME       路径+文件名
    
    # 若以后需要该文件的修改, 则输入命令非不再变更(负负得正)
    git update-index --no-assume-unchanged FILENAME   
    

    Git Branch

    # 查看分支
    git branch
    
    # 创建分支
    git branch <name>
    
    # 修改分支名称
    # a改成b
    git branch -m <name_a> <name_b>
    
    # 切换分支
    git checkout <name>
    
    # 创建+切换分支
    git checkout -b <name>
    
    # 创建分支+切换分支+拉取远程分支
    git checkout -b feature/xxx origin/feature/xxx
    
    # 切换上一个分支
    git checkout -
    
    # 合并某分支到当前分支
    git merge <name>
    
    # 删除分支
    git branch -d <name>
    
    # 推送本地分支到远程,并和远程分支关联起来
    git push --set-upstream origin <branch_name>
    

    Git Tag

    # 查看标签 
    git tag
    
    # 新建标签
    git tag tagName
    
    # 推送远程标签
    git push --tags
    
    # 删除标签
    git tag --delete tagName
    
    # 删除远程标签
    git push origin --delete tag <tagName>
    
    

    Git Stash

    暂存操作

    # 查看暂存列表
    git stash list
    
    # 如果有修改的内容, 添加跟踪
    git add .
    
    # 暂存本次操作内容
    git stash save "本次暂存标识"
    
    # 使用某次暂存的内容, 执行pop会移除暂存记录
    git stash pop stash@{n}
    
    # 清除指定暂存内容,不指定时候默认最上面那条
    git stash drop stash@{n}
    
    # 查看指定暂时条目的变更内容
    git stash show stash@{n}
    
    # 清除所有暂存内容
    git stash clear
    

    git diff

    # 查看所有不同
    git diff
    
    # 查看指定文件不同
    git diff path/file
    
    # 查看指定目录下所有文件不同
    git diff path/*
    
    # 查看所有文件不同(排除指定内容)
    # 比如:查看不同时,排除 proto 生成的内容
    git diff -- ':!pkg/*'
    
    # 查看已添加跟踪缓存的不同
    # 适用于新增的文件用git diff看不出来
    git diff --cached
    

    参考

    Git Log

    # 查看某个文件的 commit 历史日志
    git log filename
    
    # 查看每次提交的diff
    git log -p filename
    
    # 查看某次提交中的某个文件的改动
    git show abe69804bbd9725b5dece57f8cbece4a96b9f827 filename
    
    # 美化日志输出,以单行格式输出
    git log --pretty=oneline
    
    # 以ASCII图形表示分支的合并历史
    git log --graph
    
    # 显示n个日志
    git log -{n}
    git log -1
    

    .gitignore 无效及解决办法

    对应已经归档到git控制中的文件及目录,在.gitignore忽略会出现无效的情况,留爪.

    .gitignore介绍

    如果想忽略掉某文件或目录,不让这个文件或目录提交到git版本库中,可以通过修改根目录中.gitignore文件(没有这个文件的话,需要手搓创建)来实现.
    .gitignore实例:每行一条实例

    #井号开头的这行都是注释 
    *.md #忽略根目录下所有.md后缀的文件
    !README.md #但README.md除外
    dir #忽略根目录dir目录
    dir/ #忽略根目录下的dir/目录下的所有文件
    */dir #忽略根目录下的dir目录及dir目录下的所有文件
    **/dir 忽略所有目录下的dir目录及dir目录下的所有文件,**表示多级目录,git1.8.2及更高版本才支持
    

    实例的规则比较简单,同时支持正则表达(个人用的不多,就不介绍了).

    .gitignore无效场景

    在项目开发中,已经添加到git版本中的某些文件(如:xxx.pro.user),需要把这些用户文件移除(忽略掉),按照上面介绍的方式提交后,版本库中并没有生效,

    .gitignore无效解决办法

    1. 首先删除本地库缓存(不要忘了修改.gitignore)
    2. 然后再commitpush
    # 移除git跟踪缓存,<dir/file/.>可以是指定的目录/文件/库目录下所有
    git rm -r --cached . 
    git add . 
    git commit -m '更新.gitignore'
    git push origin master
    
    git bash命令行也可以修改,最终也是修改.gitconfig配置文件: 
    分别执行:
    
    git config --global core.autocrlf false
    git config --global core.filemode false
    git config --global core.safecrlf true
    https://blog.csdn.net/huangning1995/article/details/93487021
    

    git diff ^m windows/linux 换行符问题

    问题描述: 使用win10中的ubuntu1804的git查看windows上的文件, 发现都是’modified’状态
    原因: windows 使用 CR LF 作为换行符, Linux 使用 LF 作为换行符, 文件多了个 CR, 就变成modified状态了
    解决方法: git 忽略换行符的差别 git config --global core.autocrlf true
    查看设置git config -l

    参考

  • 相关阅读:
    存储过程
    数据库中的锁
    数据库事务
    三大范式
    IOC(一)
    rabbitmq部署
    配置SQLServer2012,允许远程连接
    6种常见的Git错误以及解决的办法
    灵活使用Win+R快捷键提高工作效率
    sql 创建视图常用的几种sql函数
  • 原文地址:https://www.cnblogs.com/taadis/p/git.html
Copyright © 2020-2023  润新知