git操作合集

安装
下载
本地配置
创建用户凭证ssh
忽略文件
基础操作
新建仓库
克隆仓库
获取更新
推送更新
查看历史
版本回退
分支
别名
linux服务器
疑难问题
清除历史大文件
安装
下载
下载页面:全平台

本地配置
git config --global user.name "tianyun"

git config --global user.email "[email protected]"
创建用户凭证ssh
#windows下:

ssh-keygen.exe -t rsa -C "[email protected]"

#mac下

ssh-keygen -trsa -C "[email protected]"
忽略文件
所有语言的忽略文件

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 [email protected]: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 -www.dfgjpt.com-global alias.co checkout
git config -www.zhongdayule.cn/-global alias.ci commit
git config -www.thd540.com-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/[email protected]
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 [email protected]:www.06640.cn /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 -www.00534.cn-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

猜你喜欢

转载自blog.csdn.net/li123128/article/details/83003906