1、官网
2、基础设置
- 查看设置
git config –list
- 设置用户名
git config –global user.name “hxskmx”
- 设置邮箱
git config –global user.email “hxskmx@163.com”
- 查看帮助
git help
- 查看指定命令的帮助
git help push
3、创建版本库
- 查看当前所在目录
pwd
- 创建一个空目录
$ mkdir learngit
- 进入目录初始化一个仓库
$ git init
- 创建文件
touch README.md
- 查看文件
cat README.md
- 添加文件
git add README.md
git add *.txt //添加多个文件
git reset HEAD 1.txt //删除添加后不想添加的文件
- 提交文件
git commit -m "init repo"
git commit -a -m "modify README.md" //直接提交 ,跳过缓存,不适用与新创建的文件)
5、版本回退
- 查看历史提交信息
git log
git log --pretty=oneline //一行一行显示,调整显示格式
git log --graph --pretty=oneline --abbrev-commit //查看冲突分支合并图
- 版本回退
git reset --hard HEAD^ //上一个 当前版本是 HEAD
git reset --hard HEAD^^ //上第二个版本
git reset --hard HEAD~100 //上第100个版本
git reset --hard e8b78773ad4e95c95632bf9949e2facd78bd1c1d
HEAD is now at e8b7877 edit readme 1 //回退指定版本号
- 查找历史命令,方便找到历史提交ID,恢复某一版本
git reflog
- 查看版本库中的文件与工作区文件的区别
git diff HEAD -- readme.md
- 撤销工作区修改
- 没有放入缓存区,放弃工作区的修改
git checkout – readme.md - 文件已放入缓存区,但是工作区又做了修改,想放弃本次修改
git checkout – readme.md - 上面,就是让这个文件回到最近一次git commit或git add时的状态,git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
- 没有放入缓存区,放弃工作区的修改
- 撤销缓存区修改
- git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
再次利用git checkout – readme.md可以将工作区撤销
- git reset HEAD file
6、删除
- 删除
git rm test.txt
- 误删使用版本库恢复
$ git checkout -- test.txt
git checkout 其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”
7、github使用
7.1、创建SSH Key
在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
然后一路回车即可
id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
7.2、配置SSH Key
登陆GitHub,打开“Settings”,“SSH Keys”页面, 然后点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容.
8、远程仓库
8.1、第一次关联远程仓库
- 创建一个叫origin的远程仓库
git remote add origin git@github.com:hxskmx/gitdemo.git
- 提交本地仓库至远程仓库
git push -u origin master
将本地仓库中的master分支提交至远程仓库 -u 是第一次关联远程仓库 此时 注意 自己的SSh Key 已添加至远程仓库,否则不能提交代码
8.2、向远程仓库提交代码
git push origin master
8.3、在本地克隆一个远程仓库
git clone https://github.com/hxskmx/gitskills.git // 使用https
git clone git@github.com:hxskmx/gitskills.git // 使用ssh
9、分支
- 创建分支
git branch dev
- 切换分支
$ git checkout dev
- 创建并切换分支
git checkout -b dev
git checkout命令加上-b参数表示创建并切换
- 查看当前分支
git branch
git branch命令会列出所有分支,当前分支前面会标一个*号。
- 合并分支
git merge dev
git merge命令用于合并指定分支到当前分支
- 删除分支
git branch -d dev
- 工作现场“储藏”
$ git stash
- 查看保存的工作现场
git stash list
- 恢复工作现场
git stash apply //恢复后,stash内容并不删除
git stash drop //删除stash
git stash pop //恢复的同时把stash内容也删了
$ git stash apply stash@{0} //先用git stash list查看,然后恢复指定的stash