安装

下载

下载页面:全平台

本地配置

git config --global user.name "tianyun"

git config --global user.email "tianyunperfect@163.com"

创建用户凭证ssh

#windows下:

ssh-keygen.exe -t rsa -C "tianyunperfect@163.com"

#mac下

ssh-keygen -trsa -C "tianyunperfect@163.com"

忽略文件

所有语言的忽略文件

java忽略文件

  • 忽略规则
# 注释

# 具体文件
dlldata.c # 通配符
*.suo # 复杂情况
[Dd]ebug/
x64/
[Tt]est[Rr]esult*/
  • 全局忽略

先切换到用户目录

# window
touch .gitignore_global # mac
cd ~
touch .gitignore_global
  • 本地忽略

在git目录下,创建.ignore文件即可

  • 忽略规则使生效
git config --global core.excludesfile ~/.gitignore_global

git rm -r --cached . //清空缓存,后面需要添加所有并提交

基础操作

新建仓库

# 初始化
git init
# 关联远程仓库
git remote add origin git@server-name:path/repo-name.git
# 强制推送
git push -u origin master -f

克隆仓库

git clone git@github.com:tianyunlaila/tianyunlaila.github.git

获取更新

  • 直接覆盖(常用)
git pull origin master
  • 强制覆盖(删除一切不一样的)
git fetch --all
git reset --hard origin/master
git pull
  • 手动查看不一样,再覆盖
git fetch origin master:tmp  #先获取保存到tmp
git diff tmp #查看区别
git merge tmp #再融合

推送更新

git add . //添加修改

git commit -m "message" //提交

git push origin master //推送修改的内容

git status //查看状态

git diff //修改内容

查看历史

git log //可以查看提交历史,以便确定要回退到哪个版本。

git reflog //查看命令历史,以便确定要回到未来的哪个版本。

# 美化历史:
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 以后git lg就可以显示branch变化了

版本回退

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态

git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop恢复到当前状态。

git reset --hard HASH #返回到某个节点,不保留修改。

git reset --soft HASH #返回到某个节点。保留修改

分支

创建新分支:git branch branchName

切换到分支:git checkout branchName

创建并切换到分支:git checkout -b branchName

合并某分支到当前分支:git merge branchName

删除分支:git branch -d branchName

别名

git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch # 使用
git co
git ci

linux服务器

# 安装git
yum -y install git # 添加git用户
adduser git # 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。 mkdir /home/git/.ssh/
touch /home/git/.ssh/authorized_keys cat >> /home/git/.ssh/authorized_keys << EOF
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7p3r2VGOEE8JI4jUD4vuWj7QxXsZGne5AUcPXaHcCfX0ZarATxR2EeqEwTJvUAz0t/m/wq1DzugasUFWrUvUmEEBVh8RXXXXX@163.com
EOF # 仓库暂定放在/home/git目录下
# 创建git仓库
git init --bare sample.git # 修改权限
chown -R git:git sample.git # 禁用shell登录:
vim /etc/passwd
git:x:1001:1001:,,,:/home/git:/bin/bash 改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell # 客户机clone即可
git clone git@192.168.63.128:/home/git/sample.git

公钥管理工具:gitosis

权限管理工具:gitolite

疑难问题

清除历史大文件

工作中不可避免引用一些大文件,当我们不需要时仍会占用大量内存,所以,必须清除!

# 找出排名前五的大文件
git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5 # 找出对应的文件名
git rev-list --objects --all | grep 8f10eff91bb6aa2de1f5d096ee2e1687b0eab007 # 删除记录
git filter-branch --index-filter 'git rm --cached --ignore-unmatch 文件名(可以*)'
rm -Rf .git/refs/original \$ rm -Rf .git/logs/ \$ git gc # 彻底删除!!!
git prune # 查看空间
git count-objects -v
或者du -ah

git操作合集的更多相关文章

  1. SQL用法操作合集

    SQL用法操作合集   一.表的创建 1.创建表 格式: 1 CREATE TABLE 表名 2 (列名 数据类型(宽度)[DEFAULT 表达式][COLUMN CONSTRAINT], 3 ... ...

  2. git常用操作合集

    基本操作git status 查看文件处于什么状态 git status -s 带上-s参数,可以以更紧凑的格式输出文件状态信息 git add 开始追踪该文件或者暂存已修改的文件. .gitigno ...

  3. git命令合集及github的克隆推送

    安装git 初始化仓库 提交相关 撤销相关 远程推送 分支相关 其他 遇到的错误 github的克隆上传 此文章只是对命令的一个统计,起备忘和复习git只是的作用,不建议从没接触过git的同学通过它来 ...

  4. git命令合集

    ##快捷键 ##一. 快捷键 1. 清屏快捷键 control+L 2. vim快捷操作 * control+b 往上翻页 * Control+f 往下翻页 * shift+g 回到末尾 3. oh ...

  5. javascript 最全面的数组操作合集

    一.数组添加.删除.替换.截取操作 1.arr.unshift(1) 在数组头部添加一个元素 1 (直接改变原数组,返回值为添加元素后数组的length) 2.arr.shift() 在数组的头部删除 ...

  6. Java文件复制删除操作合集

    import java.io.*; public class FileOperate { public FileOperate() { } /** * 新建目录 * @param folderPath ...

  7. git使用合集

    1.git 克隆时重命名本地文件夹或目录 如:git clone https://github.com/torvalds/linux.git linux_kernel 2.git查看tag git t ...

  8. 插头DP智障操作合集

    今天一共四道插头DP[其实都差不多],智障错误出了不下五个:D 来,让我好好数落我自己一下 直接写代码注释里吧 Eat the Trees #include<iostream> #incl ...

  9. Git 经常使用命令合集

    ====== Git 经常使用命令合集 ====== === 1.Git 文档 ===     Git 中文文档观看地址:http://git.oschina.net/progit/      === ...

随机推荐

  1. 修改VS项目的目标平台(目标框架)

    如果是正常的情况下.. 右键项目属性里就有修改的地方.. 可是有时候打开属性发现修改的下拉框是禁用的.. 这时候可以右键 "卸载项目" 编辑 .csproj 项目文件 在上方有个& ...

  2. 使用NHibernate(6)-- HQL && ICriteria 简单介绍

    1,HQL. HQL是NHibernate特有的查询方式,早先的java语法还没有类似Linq的Jinq,所以Hibernate就弄了一套自己的查询语言,NHibernate移植的时候把这种语言也一块 ...

  3. mongo 授权访问

    1.授权远程也可以访问 - 首先修改mongodb的配置文件 让其监听所有外网ip 编辑文件:/etc/mongodb.conf 修改后的内容如下: bind_ip = 0.0.0.0 port = ...

  4. 用sql语句导出oracle中的存储过程和函数

    用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' repl ...

  5. [中英对照]Booting Process in Linux RHEL 7 | Linux RHEL 7启动过程

    Booting Process in Linux RHEL 7 | Linux RHEL 7启动过程 In this post, I will guide you booting process in ...

  6. 介绍Windows Azure HDInsight服务的Hadoop Storm的视频

    介绍Windows Azure HDInsight服务的Hadoop Storm的原理,用例及开发入门的视频,收藏一下: http://channel9.msdn.com/Shows/Data-Exp ...

  7. JSONP数据调用

     json 是一种数据格式  jsonp 是一种数据调用的方式. 什么是JSONP          为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是 ...

  8. EntityFramework CodeFirst 学习

    个人学习笔记仅供分享,如有错误还请指出 demo结构:models类库和控制台程序 1.首先在model中建立,ADO.NET 实体数据模型---空模型,然后新建数据实体,并且生成数据库 2.控制台想 ...

  9. 微信WeUI扩展组件

    主要包括 下拉刷新pullToRefresh downRefresh.html 主要的代码是$(document.body).pullToRefresh(); <div class=" ...

  10. Grid控件

    Grid控件是WPF布局容器中功能最强大.最灵活的控件.Grid控件基本上能够完成其他WPF容器控件所能完成的功能,Microsoft建议大多数界面的布局都使用Grid控件来实现,因此默认情况下.vs ...