GITusage

日常操作

git init # 把目录变成Git管理仓库
git add xxx.xx #添加文件
git commit -m "xx" # 添加 commit
git status # 查看状态
git diff # 查看文件变化

回到过去

git log # 显示提交日志
git reset --hard HEAD^
git reset --hard 111ax

上一个版本是HEAD^,上上个版本就是HEAD^^,上100个版本是HEAD~100--hard后面接的是Commit ID的前几位,git会自动匹配。若要再回到最新版本,可以用git reflog查看最近的操作,记下Commit ID再复原。

删记录

git checkout --orphan latest_branch # 切换新分支
git add -A # 缓存所有文件(除.gitignore中的)
git commit -am "xxx" # 提交跟踪过的文件
git branch -D master # 删除master分支
git branch -m master # 重命名当前分支为master
git push -f origin master # 提交到远程master分支

github远程仓库

首次执行:

git config --global user.name "Nickname"
git config --global user.email "Email@em.com"
# git config --global core.quotepath false (显示中文问题)

生成并查看SSH:

ssh-keygen -t rsa -C "Email@em.com"
cat ~/.ssh/id_rsa.pub
# ls ~/.ssh/  -- id_rsa是私钥,id_rsa.pub是公钥

将公钥添加到Github/Gitee即可使用

添加远程仓库:

git remote add Repository_Name Git_Address
git remote #查看远程仓库

Push失败解决方案

  1. 备份本地文件,再pull下来手动融合文件,然后看一下status,git add -A一遍过,在commit -m,最后再push一遍。
  2. 强行push (使用-f)

自动PUSH脚本:

#!/bin/sh
# by luuljh
if (git status | grep -i 'changes not staged for commit:\|修改尚未加入提交');then
        git add -A
        git commit -m "auto: `date '+%m-%d %T'`"
        git push theme master
        echo "Ok!"
else
        echo "Nothing is changed; Stop pushing."
fi
read -p "Press ENTER to exit." var