参考 廖雪峰的git教程
mac上使用git必须要用Xcode,这点很不爽……
创建仓库
git init
添加文件
git add 文件名(可用空格隔开)
commit文件
git commit -m “描述”
- 禁用fast-faword ,使用 git merge –no-ff -m “description” branch-name
- da
显示仓库文件状态
git status
- 简写git st
显示修改的内容
git diff
git diff file
版本回退
- git reset –hard head^
- git reset –hard head~100
- git reset –hard commit id
- head代表当前版本,head^代表上个版本,head^^代表上两个版本,也可以用~加上数字表示之前的版本
- commit id代表每个版本的id号
日志记录
git log
- git log –prety==oneline 命令代表简要显示,即版本号和描述
- git log -graph 时间轴形式显示
命令记录
git reflog
丢弃修改
git checkout – <file>
--
命令表示丢弃修改,不添加的话,checkout表示切换分支- 让这个文件回到最近一次 git commit 或 git add 时的状态
- 如果修改后没有添加到暂存区,则回退到版本库
- 如果放到暂存区后,又做了修改,则回退到暂存区内的状态
- git reset HEAD
<file>
把暂存区的修改撤销掉(unstage),重新放回工作区,即取消本次add操作
删除文件
git rm
- 文件删除后可用版本回退,从版本库中获取到最新版本的文件
远程仓库
添加远程库
git remote add origin git@server-name:path/repo-name.git
推送至远程库
git push -u origin master
- 使用-u命令使本地master和远程master分支关联
- git push origin master
克隆远程仓库
git clone
##多人协作
查看远程信息
git remote
- git remote -v 查看详细信息
推送至远程
git push origin master
- git push origin dev 推送至其他分支
获取最新提交
git pull(git pr)
git fetch
分支管理
查看分支
git branch
创建分支
git branch <name>
切换分支
git checkout <name>
创建并切换
git checkout -b <name>
合并至当前分支
git merge <name>
删除分支
git branch -d <name>
查看分支合并情况
git log –graph
BUG分支
存储工作区
git stash
参看工作区存储情况
git stash list
恢复工作区
git stach apply 恢复而不删除存储
git stash pop 恢复并且删除存储
其他
- HEAD指针指向当前版本
管理修改
- 暂存区和工作区
- add 添加文件到暂存区
- 如果不进行add,不会进入暂存区,就无法通过commit进行提交
- commit提交暂存区内的所有修改
- 提交之后暂存区将清空
- add 添加文件到暂存区
撤销修改
- 1.修改了文件,但是没有添加到暂存区
- 使用git checkout –
撤销至最近一次add或者commit
- 使用git checkout –
- 2.修改了文件,并且已经添加到暂存区
- 使用git reset HEAD
撤销本次add操作,再使用第一种方法进行撤销
- 使用git reset HEAD
- 3.修改了文件,并且已经提交
使用git reset –hard head/commit_id进行版本回退