git如何修改其不区分文件大小写(默认忽略大小写)的设置
因为git默认的设置是忽略文件大小写的，这就会有可能导致不同分支拉取下来的同一文件的文件名大小写却不同，从而导致代码中对应的路径找不到而报错，那么这种问题怎么处理呢？很简单，直接使用 git config core.ignorecase false 命令 把git忽略大小写的配置关掉；我们可以使用 git config core.ignorecase 命令来检查当前git配置的是否忽略大小写的配置，默认情况下应该是返回true，表示是忽略大小写的，不区分大小写；当我们执行 git config core.ignorecase false 后 再去 执行 git config core.ignorecase 会发现这时候返回值是 false 代表我们成功关掉了git的忽略大小写配置；PS:在linux系统中，大小写是敏感的，所以配置GIT的时候需要设置一下，再就是设置命令时使用git的命令工具，不要使用cmd
利用python和git实现目录文件变更自动备份
前言背景1、主要是突然有一个需要实时备份数据库文件，防止数据丢失的需求，思前想后，发现存在很多方式，例如备份在自己的其他服务器，备份在本地等，最终决定编写一个python脚本用来判断数据库备份文件夹文编改动后通过git提交到github或者gitee代码from watchdog.observers import Observer from watchdog.events import * import time from git import Repo import os def pushgit(ccpath): if(".git" in ccpath): print(1); else: try: dirfile = "C:\\Users\\Administrator\\Documents\\Navicat\\MySQL\\servers\\127.0.0.1\\ddh\\" # code的文件位置，我默认将其存放在根目录下 repo = Repo(dirfile) g = repo.git g.add("--all") g.commit("-m auto update") g.push() print("Successful push!") except : print("error push!") class FileEventHandler(FileSystemEventHandler): def __init__(self): FileSystemEventHandler.__init__(self) def on_moved(self, event): pushgit(event.src_path) if event.is_directory: print("directory moved from {0} to {1}".format(event.src_path,event.dest_path)) else: print("file moved from {0} to {1}".format(event.src_path,event.dest_path)) def on_created(self, event): pushgit(event.src_path) if event.is_directory: print("directory created:{0}".format(event.src_path)) else: print("file created:{0}".format(event.src_path)) def on_deleted(self, event): pushgit(event.src_path) if event.is_directory: print("directory deleted:{0}".format(event.src_path)) else: print("file deleted:{0}".format(event.src_path)) def on_modified(self, event): pushgit(event.src_path) if event.is_directory: print("directory modified:{0}".format(event.src_path)) else: print("file modified:{0}".format(event.src_path)) if __name__ == "__main__": observer = Observer() event_handler = FileEventHandler() observer.schedule(event_handler,"C:\\Users\\Administrator\\Documents\\Navicat\\MySQL\\servers\\127.0.0.1\\ddh\\",True) observer.start() try: while True: time.sleep(1) except KeyboardInterrupt: observer.stop() observer.join()centos7 后端运行脚本命令nohup python3 -u auto_up.py > test.log 2>&1 &写好脚本文件中，将脚本文件加入到开机自动运行里就可以监控更新了。然后如果是备份数据库，则只需要创建数据库自动备份计划，就可以完成了。
开发过程中，经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用，而公共代码库的版本管理是个麻烦的事情。使用git的git submodule命令，之前的问题就可以迎刃而解了。添加为当前工程添加submodule，命令如下：git submodule add 仓库地址 路径其中，仓库地址是指子模块仓库地址，路径指将子模块放置在当前工程下的路径。 注意：路径不能以 / 结尾（会造成修改不生效）、不能是现有工程已有的目录（不能順利 Clone）命令执行完成，会在当前工程根路径下生成一个名为“.gitmodules”的文件，其中记录了子模块的信息。添加完成以后，再将子模块所在的文件夹添加到工程中即可。删除submodule的删除稍微麻烦点：首先，要在“.gitmodules”文件中删除相应配置信息。然后，执行“git rm –cached ”命令将子模块所在的文件从git中删除。下载的工程带有submodule当使用git clone下来的工程中带有submodule时，初始的时候，submodule的内容并不会自动下载下来的，此时，只需执行如下命令：git submodule update --init --recursive即可将子模块内容下载下来后工程才不会缺少相应的文件。
一、安装Git服务1、移除旧版git2、下载git1. 下载最新版本：2. 下载完成后我们可以看到如下文件：4. 安装依赖5. 编译安装git6. 配置环境变量7. 检查是否安装成功二、安装Git管理工具Gitblit1. 安装JDK8，在此不再说明安装方法2. 下载Gitblit4. 修改配置5. 配置服务6. 设置自启动7. 启动gitblit8. 查看服务是否启动成功9. 访问三、使用Gitblit在windows上搭建Git服务器1. 安装java环境2. 安装Gitblit2.1 下载2.2 配置这是我的设置，可自行设置为其他路径2.3 运行gitblit.cmd2.4 验证是否安装成功2.5 设置以Windows Service方式启动Gitblit一、安装Git服务1、移除旧版gityum remove git2、下载git在如下链接中可以看到git所有版本，选择自己需要的版本进行下载，这里我选择最新版本。https://github.com/git/git/releases1. 下载最新版本：wget https://codeload.github.com/git/git/tar.gz/v2.21.0-rc22. 下载完成后我们可以看到如下文件：v2.21.0-rc2将其重命名：mv v2.21.0-rc2 v2.21.0-rc2.tar.gz解压tar -zxvf v2.21.0-rc2.tar.gz4. 安装依赖在安装git之前先安装一下需要的依赖yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker5. 编译安装git进入git解压目录cd git-2.21.0-rc2/编译make prefix=/usr/local/git all 安装make prefix=/usr/local/git install注意：编译和安装路径也可以自行修改6. 配置环境变量打开配置文件vim /etc/profile在底部加入如下内容(注：路径根据自己的路径进行修改)PATH=$PATH:/usr/local/git/bin export PATH刷新环境变量source /etc/profile7. 检查是否安装成功git --version二、安装Git管理工具Gitblit1. 安装JDK8，在此不再说明安装方法2. 下载Gitblithttp://www.gitblit.com/解压tar -zxvf gitblit-1.8.0.tar.gz4. 修改配置在“ …/gitblit-1.8.0/data/gitblit.properties ”中设置参数server.httpPort = 7070 server.httpsPort = 70715. 配置服务在gitblit解压根目录下修改" service-centos.sh "文件：GITBLIT_PATH=/home/button/git/gitblit-1.8.0 GITBLIT_BASE_FOLDER=/home/button/git/gitblit-1.8.0/data GITBLIT_HTTP_PORT=7070 GITBLIT_HTTPS_PORT=7071 GITBLIT_LOG=/home/button/git/gitblit-1.8.0/gitblit.log注：将路径设置为自己的路径即可6. 设置自启动cd gitblit-1.8.0 cp service-centos.sh /etc/init.d/gitblit chkconfig --add gitblit7. 启动gitblitcd gitblit-1.8.0 nohup java -jar gitblit.jar --baseFolder data &8. 查看服务是否启动成功service gitblit start9. 访问http://ip:7070初始账户： admin/admin 三、使用Gitblit在windows上搭建Git服务器1. 安装java环境因为以前装过，不再赘述。网上有很多这方面的教程，可自行搜索。2. 安装Gitblit2.1 下载Gitblit官方下载地址 下载下来是一个zip压缩包，直接解压即可。这里我下载下来的是 gitblit-1.8.0.zip ，然后解压到D盘，最终路径为D:gitblit-1.8.0。解压路径最好不要有空格和中文字符。2.2 配置找到data文件下的gitblit.properties文件（我这里是 D:\gitblit-1.8.0\data\gitblit.properties ），用EditPlus或者记事本打开，进行编辑。配置资源库路径这是我的设置，可自行设置为其他路径git.repositoriesFolder = E:/GitRepository注意路径中的斜线一定要用 / ,不要使用 配置http服务的ip和端口号#ip，如果不设置具体ip地址而是直接留空，那么就会绑定本机所有ip； #如果设置为localhost，那么Gitblit只会监听指向localhost的请求。 server.httpBindInterface =192.168.199.239 #端口号，推荐80 or 8080 server.httpPort = 10101配置https服务的ip和端口号#ip，规则与http同。 server.httpsBindInterface =192.168.199.239 #端口号，推荐443 or 8443 server.httpsPort = 8443保存并关闭。2.3 运行gitblit.cmd位于根目录。我这里是 D:\gitblit-1.8.0\gitblit.cmd ，直接双击运行即可。如果运行成功，会显示下面的界面：如果出错，此窗口会自动关闭，导致打印的错误信息无法查看。我是用录屏软件录下来，然后去看打印的错误信息。2.4 验证是否安装成功在浏览器输入前面配置的http服务ip和端口号进行访问（我的是http://192.168.199.239:10101/），出现以下界面就成功了。2.5 设置以Windows Service方式启动Gitblit前面我们是以运行gitblit.cmd的方式启动Gitblit的，如果不想每次开机都去双击执行它，跟随系统自启岂不是美哉。下面我们看怎么实现。打开installService.cmd文件文件位于根目录下。我的是 D:\gitblit-1.8.0\installService.cmd ，用EditPlus或者记事本打开。编辑 installService.cmd 文件#修改ARCH，32位系统：SET ARCH=x86，64位系统：SET ARCH=amd64 SET ARCH=amd64 #添加 CD 为程序目录 SET CD=D:\gitblit-1.8.0 #修改StartParams里的启动参数，给空就可以了。 --StartParams="" ^保存以管理员身份运行 installService.cmd 文件。在计算机-管理-服务下，就能看到已经存在的gitblit服务了。文章已验证并参考资料： 搭建Git服务器并安装管理工具Gitblit 使用Gitblit在windows上搭建Git服务器
git clone支持https和git（即ssh）两种方式下载源码：当使用git方式下载时，如果没有配置过ssh key，则会有如下错误提示：下面就介绍一下如何配置git的ssh key，以便我们可以用git方式下载源码。首先用如下命令（如未特别说明，所有命令均默认在Git Bash工具下执行）检查一下用户名和邮箱是否配置（github支持我们用用户名或邮箱登录）：git config --global --list 笔者的机器显示信息如下（已配置）：如未配置，则执行以下命令进行配置：git config --global user.name "这里换上你的用户名" git config --global user.email "这里换上你的邮箱"然后执行以下命令生成秘钥：ssh-keygen -t rsa -C "这里换上你的邮箱"执行命令后需要进行3次或4次确认：确认秘钥的保存路径（如果不需要改路径则直接回车）；如果上一步置顶的保存路径下已经有秘钥文件，则需要确认是否覆盖（如果之前的秘钥不再需要则直接回车覆盖，如需要则手动拷贝到其他目录后再覆盖）；创建密码（如果不需要密码则直接回车）；确认密码；执行过程如下图：在指定的保存路径下会生成2个名为id_rsa和id_rsa.pub的文件：再打开你的github，进入配置页：选择SSH and GPG keys项：之前生成的是ssh秘钥，所以下面选择New SSH key（笔者这里已经配置了一个key，如果是未配置秘钥的用户，这里应该是空的）：然后用文本工具打开之前生成的id_rsa.pub文件，把内容拷贝到key下面的输入框，并为这个key定义一个名称（通常用来区分不同主机），然后保存：再次尝试用git方式下载，可以看到已经可以正常下载：文章转载至:https://blog.csdn.net/lqlqlq007/article/details/78983879
基本语法：:[addr]s/源字符串/目的字符串/[option] :1,30s/#//g //这句话的意思是将1~30行的#替换为空全局替换命令::%s/源字符串/目的字符串/g[addr] 表示检索范围，省略时表示当前行。"1,20"：表示从第1行到第20行；"%"：表示整个文件，同"1,$";".,$"：从当前行到文件尾；s：表示替换操作[option]：表示操作类型g 表示全局替换；c 表示进行确认p 表示替换结果逐行显示(ctrl+L 恢复屏幕)；省略option时仅对第一个匹配串进行替换；如果在源字符串和目的字符串中出现特殊字符，需要用""转义。
使用国内镜像网站解决github clone速度慢问题
问题描述我从github clone一些项目的时候速度极慢，有时候clone到一半还会失败，简直令人抓狂。解决步骤使用国内镜像网站目前已知Github国内镜像网站有 github.com.cnpmjs.org （亲测这个访问速度较快）。接下来只需要在clone某个项目的时候将github.com替换为github.com.cnpmjs.org即可。如下例：git clone https://github.com/Hackergeek/architecture-samples替换为git clone https://github.com.cnpmjs.org/Hackergeek/architecture-samples如果你仅仅只是想clone项目，不需要对clone下来的项目进行modify和push，那下面那个步骤就不需要看了。下面的步骤是为了解决使用镜像网站clone下来的项目无法进行push的问题的，因为国内的镜像网站是无法登录的，如果你尝试登录，结果如下图。修改仓库push url为了解决使用国内镜像网站clone下来的项目无法push的问题，我们需要将clone下来的仓库push url修改为github.com。如下例：使用国内镜像网站clone下来的项目远程仓库地址如下图：使用如下命令修改仓库的push url：git remote set-url --push origin https://github.com/Hackergeek/architecture-samples过程如下图：转载至：https://blog.csdn.net/u014630636/article/details/106181159/
Git bash设置中文这个Git bash本身就支持中文，只需要在打开Git bash后命令窗口右键Options -->Windows -->UI languages 下拉选择 zh_C即可。当然记得保存哦！！上图是就可以设置Git bash的界面。Git GUI汉化啥？你说为啥汉化？？嗯，那你为啥子来看我帖子~~~~ 因为我么有找到哪里能设置中文的地方，那么到底应该怎么设置Git GUI的中文显示呢？哈哈哈， 其实超简单的，下载此文件：https://files.cnblogs.com/files/chenghu/git-gui-zh-master.zip 解压缩后得到 zh_cn.msg文件。将其放到/mingw64/share/git-gui/lib/msgs/zh_cn.msg 路径下不过Git安装路径下面没有msgs这个文件夹，我反正是没有的。那么自己创建之后再将这个汉化文件放进去。嗯，这样就算是汉化完了。重新打开Git GUI ，你就会发现界面已经变成了中文了。本文Git GUI汉化包来源： https://github.com/stayor/git-gui-zh 文章转至：https://www.cnblogs.com/chenghu/articles/12678500.html