mkdir <directory name> 创建一个空目录
cd <directory name> 切换到指定目录
pwd 显示当前目录
git config --global user.name "Your Name" 配置用户名
git config --global user.email "
email@example.com" 配置用户邮箱
git init 把当前目录变成Git可以管理的仓库
git add <file name> 把文件添加到仓库,实际上就是把文件修改添加到暂存区
git commit -m "wrote a readme file" 把文件提交到仓库,引号内的内容为这一步提交的注释信息,实际上就是把暂存区的所有内容提交到当前分支
git status 查看当前git仓库的状态
git diff 查看修改内容
git log 查看提交历史记录(以便确定要回退到哪个版本)
git log --pretty=oneline 简化版查看历史记录(每条记录单行显示)
git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上上个版本
git reset --hard HEAD~N 往上回退N个版本
cat <file name> 查看文件内容
git reset --hard + <commit id> 可以回退到对应的版本号,版本号没必要写全,前几位就可以了
git reflog 查看命令历史记录(一般用来确定回到未来的哪个版本)
git diff HEAD -- <file name> 查看该文件在工作区和版本库里面最新版本的区别
git checkout -- <file name> 把文件在工作区的修改全部撤销,分2种情况:
一种是文件自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是文件已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit 或 git add时的状态
git reset HEAD <file name> 可以把暂存区的修改撤销掉,重新放回工作区
rm <file name> 删除工作区文件
git rm <file name> 删除版本库文件(并且要紧跟着再git commit一下)
git checkout -- <file name> 也可以用来把误删的文件恢复到最新版本,其实就是用版本库里的版本替换工作区的版本
ssh-keygen -t rsa -C "
youemail@example.com" -f ~/.ssh/id_rsa 创建SSH公钥密钥对,"
youemail@example.com"为你自己的邮箱地址,"id_rsa"为公钥名,可修改
ssh-add ~/.ssh/id_rsa 添加私钥id_rsa
ssh-agent bash 执行ssh-add时出现"Could not open a connection to your authentication agent"时,先执行该命令,再执行ssh-add
ssh-add -l 列出私钥列表
ssh-add -D 清空私钥列表
ssh -T
git@github.com 确认私钥在github上的部署情况,
输出"Hi XXX! You've successfully authenticated, but GitHub does not provide shell access."就表示成功的连上github了
git remote add origin
git@github.com:账户名/远程仓库名.git 把本地仓库与远程仓库相关联
git push -u origin master 把本地库的所有内容推送到远程库上(第一次推送master分支时,加上-u参数,之后可以简化命令不要-u)
之后就可以用git push origin master把本地master分支的最新修改推送至GitHub
git clone
git@github.com:账户名/远程仓库名.git 会把远程库克隆到本地当前地址
git checkout -b <branch name> 创建新分支,然后切换到该新分支,-b参数表示创建并切换
git branch 查看当前所有分支,分支名前带*的为当前所在分支
git checkout <branch name> 切换到指定的分支
git merge <branch name> 合并某个分支
git branch -d <branch name> 删除分支,合并之后就可以删除分支了
git log --graph 查看分支合并图
git merge --no-ff -m "comment" <branch name> 强制禁用Fast forward模式,Git会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息
git stash 可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作,一般用于隐藏还未完成的分支
git stash list 查看保存起来的工作现场
git stash apply 恢复工作现场,但stash的内容不删除,要用git stash drop来删除
git stash pop 恢复工作现场的同时把stash的内容也删了
git branch -D <branch name> 强行删除一个没有被合并过的分支
git remote 查看远程库的信息
git remote -v 显示本地库和远程库相关联的更详细的信息
git push origin <branch name> 把该分支上的所有本地提交推送到远程库
git pull 抓取远程库的新提交
git checkout --set-upstream <branch name> origin/<branch name> 在本地创建和远程分支相对应的分支,本地和远程分支的名称最好一致(在git pull失败后使用该语句)
git branch --set-upstream <branch name> origin/<branch name> 建立本地分支和远程分支的关联
git tag <tag name> 创建一个标签
git tag 查看所有标签
git tag <tag name> commitID 为对应ID的历史提交创一个标签
git tag -a <tag name> -m"comment" 指定标签信息
git tag -s <tag name> -m"comment" 用PGP签名标签
git show <tagname> 查看标签信息
git tag -d <tag name> 删除本地标签
git push origin :refs/tags/<tag name> 从远程库删除标签
git push origin <tag name> 推送某个标签到远程库
git push origin --tags 一次性推送全部尚未推送到远程的本地标签
git config --global color.ui true 让Git命令行显示颜色,让命令输出看起来更醒目
git config --global alias.<别名> <原命令名> 为某个git命令配置别名,使用起来更加简便
参考文章: Git教程 - 廖雪峰的官方网站