# 初始化
git init
---------------------------------------------------
# 项目级别/仓库级别(仅在当前本地库范围内有效)
git config user.name xxx
git config user.email xxxxx
# 系统用户级别(登陆当前操作系统的用户范围)
git config --global user.name xxx
git config --global user.email xxxxx
---------------------------------------------------
# 查看当前项目状态
git status
---------------------------------------------------
# 将文件添加到暂存区
git add <file>
---------------------------------------------------
# 将文件从暂存区清除
git rm --cached <file>
---------------------------------------------------
# 提交到本地库,进入vim添加信息
git commit
# 提交到本地库,后面写上修改信息,不用进入vim
git commit -m "message..." <file>
---------------------------------------------------
# 查看历史版本信息
# 完整信息(多屏操作:空格向下翻页,b向上翻页,q退出)
git log
# 一行显示
git log --pretty=oneline
# 一行显示,省略部分哈希值
git log --oneline(只显示过去的)
# 显示移动到某个版本需要的步数
git reflog(显示全部)
---------------------------------------------------
# 切换版本
# 1.基于索引值 (推荐)
git reset --hard [局部索引值]
# 2. ^ 符号,一个^后退一步,n个后退n步(只能后退)
git reset --hard HEAD^
# 3. ~符号 n表示后退几步(只能后退)
git reset --hard HEAD~n
---------------------------------------------------
# 永久删除的文件如何找回?
使用git reset --hard回到之前版本即可
# 暂存区删除的文件如何找回?
使用git reset --hard HEAD 同步本地库、暂存区、工作区 即可
---------------------------------------------------
# 比较操作
git diff <file name>(和暂存区进行比较)
git diff HEAD <file name>(和本地库比较)
git diff HEAD^ <file name>(和指定记录比较)
git diff(不指定文件名,比较全部文件)
---------------------------------------------------
# 分支操作
创建分支
git branch [分支名]
# 查看分支
git branch -v
# 选择分支
git checkout [分支名]
# 合并分支(先切换到要合并到的分支)
git merge [合并的分支名]
---------------------------------------------------
# 推送
git push [远程地址] master
# 克隆
git clone [远程地址]
# 拉取
pull = fetch + merge
git fetch[远程库地址别名] [远程分支名]
git merge[远程库地址别名/远程分支名]
git pull[远程库地址别名] [远程分支名]
# 创建远程库地址的别名
git remote add 别名 [地址]
# 查看全部别名
git remote -v
---------------------------------------------------
# 设置ssh免密登陆
ssh-keygen -t rsa -C [邮箱地址]
一路回车,进入.ssh目录查看文件id_rsa.pub内容,在github上进行操作