git相关

配置全局用户名密码

git config --global credential.helper store
存储分为三种模式:不存储密码,缓存密码一段时间,存储密码。分别对应未配置、cache、store模式
随后进行对远端的任何一次操作,输入用户名、密码一次后就会保存密码。
保存密码后在用户主目录生成【.git-credentials】文件,里面保存着存储的多个密码,会在使用不同的站点时自动选择对应的密码。
参考官方文档
git config --system --unset credential.helper 清除凭证
Git 工具 - 凭证存储

git clone url localname 克隆远端内容,可以自定义本地库名称
git add . 添加项目文件到暂存区,支持通配符,此命令将文件添加到下一次提交的文件列表中,
已经暂存的文件如果再次被修改,需要再次添加到暂存区中,此过程中可以通过git status查看文件状态
git commit [-m -a] 提交暂存区内容到本地库,通过添加【-m】来添加描述,如果不添加描述则会要求检查文件,否则直接commit到本地库中
-a参数将跳过暂存,自动将所有已跟踪过的文件暂存随后一并提交
git push origin branch 将文件推到远端某个分支,默认推送到origin/master
git pull 将远端文件拉到本地库,等同于执行git fetch + git merge
git init 在本地目录中初始化一个git环境
git status [-s] 查看文件状态【未修改、已修改、已暂存】,通过【-s】可以获得简短的提示信息
git diff [--staged --cached]查看文件修改情况,【--staged 和--cached命令效果相同,均为查看暂存区中与远端库中的差异】,
如果文件修改后已暂存,随后又进行了更改,这时使用默认的git diff查看的就是新的修改与暂存的内容的差异,Git 1.6.1才支持staged。
git diff只显示尚未暂存的改动,而不是自上次提交以来的所有改动。
git difftool 差异对比工具
git rm [-f --cached] 删除跟踪,【--cached】用于指定删除跟踪而不删除文件,【-f】强制模式,用于删除已经暂存的文件
(即如果已经add到暂存区,此时直接使用git rm是无法删除的,需要添加-f参数,
此时会修改暂存区中的文件状态为删除,将在下一个commit中提交到本地库)
git mv 重命名,效果同下列的三条命令,原因是对文件重命名后git不会在元数据进行体现,可在git mv命令后通过git status进行观察
$ mv README.md README
$ git rm README.md
$ git add README
git log [-p -2 --stat]查看提交历史,通过【-p】显示每次提交的内容差异,同时可以指定查找的条数,默认查找最新的记录,
【--stat】查看简略的统计信息,除此外还可以定制显示内容,查找指定指定日期指定提交者的log
git commit --amend 撤销上一次提交,使用新的提交覆盖上一次提交
git reset filename 取消文件暂存
git checkout filename 取消对文件的修改,恢复到上一次commit的状态
git remote [-v] 查看远程仓库【-v】显示需要读写远程仓库使用的 Git 保存的简写与其对应的 URL
git push origin --delete hotfix 删除远程分支
git push --set-upstream origin hotfix 设置远程跟踪的位置,远程无此分支时会创建
git branch -vv 查看远程分支情况
git branch new 创建分支
git branch -d branchName 删除本地分支
git branch -a 查看所有分支

git shortlog 制作提交简报,给出上一次发布以来的所有变更信息
git shortlog --no-merges master --not v1.9 制作提交简报,列出每个用户每次提交的信息,只列出master
git archive master  | gzip > `git describe --tags v1.9`.tar.gz 打包
git archive master --prefix='project/' --format=zip > `git describe --tags v1.9`.zip

git stash 、git stash save 储藏工作
git stash list 查看储藏的文件
git stash apply 应用储藏的内容

同时提交到多个远端库
 git remote set-url --add origin xxxxxx.git

在库目录下创建.gitignore文件,忽略文件和目录
忽略模式如下:

# 以'#'开始的行,被视为注释.

 * ?:代表任意的一个字符
    * *:代表任意数目的字符
    * {!ab}:必须不是此类型
    * {ab,bb,cx}:代表ab,bb,cx中任一类型即可
    * [abc]:代表a,b,c中任一字符即可
    * [ ^abc]:代表必须不是a,b,c中任一字符

git branch –set-upstream-to=origin/master master 解决使用git pull命令"当前分支没有跟踪信息"报错问题

git config --global core.quotepath false //解决乱码问题

 git pull --allow-unrelated-histories //解决提示fatal: refusing to merge unrelated histories的问题

移除指定文件,解决误缓存了文件的问题
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch res/a.jpg' HEAD


原文地址:https://www.cnblogs.com/ives/p/git.html