1. 新建远程仓库
- 在 github.com 上新建 repository :xxxx , 链接为:https://github.com/shenbo/xxxx.git
- 本地新建文件夹:xxxx
cd ~/xxxx
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/shenbo/xxxx.git
git push -u origin master
2. 远程仓库操作
- 检出仓库:
git clone https://github.com/shenbo/xxxx.git
- 拉取仓库:
git pull [remoteName] [localBranchName]
- 推送仓库:
git push [remoteName] [localBranchName]
- 显示日志:
git log -1 --stat
# 显示最近一次commit的更改统计概述
3. 放弃本地修改,强制更新
git fetch --all
git reset --hard origin/master
# 删除 untracked 文件或文件夹,不含.gitignore
git clean -df
4. 配置SSH
- 打开git bash,设置用户名,并生成
ssh-key
。
git config --global user.name "shenbo"
git config --global user.email "shenbo@hotmail.com"
ssh-keygen -t rsa -b 4096 -C "shenbo@hotmail.com"
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
-
复制
~/.ssh/id_rsa.pub
,在 github.com 个人设置页面,点击新建或添加 SSH key,将id_rsa.pub
内容复制进去。 -
测试 git 客户端与 github 是否连接成功。
$ ssh -T git@github.com
- 如果连接报错
ssh: connect to host github.com port 22: Connection > refused
, 打开/新建~/.ssh/config
,修改内容如下,重新测试。
Host github.com
User shenbo@hotmail.com
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
5. 永久删除文件(包括历史记录)
- 5.1 删除文件命令:
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all
- 5.2 删除文件夹命令:
git filter-branch --force --index-filter \
'git rm --cached -r --ignore-unmatch PATH-TO-YOUR-FLODER-WITH-SENSITIVE-DATA' \
--prune-empty --tag-name-filter cat -- --all
- 5.3 把文件或文件夹添加到.gitignore文件里:
echo "YOUR-FILE-WITH-SENSITIVE-DATA" >> .gitignore
git add .gitignore
git commit -m "Add YOUR-FILE-WITH-SENSITIVE-DATA to .gitignore"
- 5.4 然后以强制覆盖的方式推送repo, 命令如下:
git push origin master --force --all
git push origin master --force --tags
- 5.5 清理和回收空间:
git for-each-ref --format='delete %(refname)' refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now
- 5.6 另外,可以通过 rev-list 命令来找到仓库记录中的大文件:
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
网友评论