参考:廖雪峰git教程
- 通过git init命令把这个目录变成Git可以管理的仓库
git init
- 把文件添加到版本库
git add 文件名
- 把文件提交到仓库
git commit -m "本次提交的说明"
- 查看仓库当前的状态
git status
- 查看文件修改内容(工作区与commit后的文件比较)
git diff --cached 比较的是暂存区的文件与仓库分支里(上次git commit 后的内容)的区别。
git diff HEAD -- 命令可以查看工作区和版本库里面最新版本的区别。
git diff 文件名
- 查看commit 历史记录
git log
- git 版本回退
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
git reset --hard HEAD^
- git版本回到回退之前的版本
git reset --hard "提交id"
- 查看git操作的每一次命令
git reflog
- 查看工作区和版本库里面最新版本的区别
git diff HEAD -- 文件名
- 丢弃工作区的修改
命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git checkout -- 文件名
- 把暂存区的修改撤销掉(unstage),重新放回工作区
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
git reset HEAD 文件名
- 关联一个远程库
git remote add origin 仓库地址
- 推送master分支的所有内容
git push -u origin master
- 将代码从远程库克隆到本地库
git clone 远程库地址 本地库名
- 创建新分支
git checkout命令加上-b参数表示创建并切换
git checkout -b 分支名
- 查看当前分支
git branch
- 合并指定分支到当前分支
git merge 指定分支名
- 删除指定分支
git branch -d 指定分支名
- 切换分支
git checkout 分支名
- 强行删除没有被合并过的分支
git branch -D 分支名
- 查看远程库的信息
git remote -v
- 推送分支
推送分支,就是把该分支上的所有本地提交推送到远程库。推送时,要指定本地分支,这样,Git就会把该分支推送到远程库对应的远程分支上
git push origin master
- 多人开发模式
多人协作的工作模式通常是这样:
首先,可以试图用git push origin <branch-name>推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。
这就是多人协作的工作模式,一旦熟悉了,就非常简单。
- 在本地创建和远程分支对应的分支
git checkout -b branch-name origin/branch-name
- 建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name
- 打一个新标签
默认标签是打在最新提交的commit上的,还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:查看标签信
git tag v1.0
- 为某个历史版本打标签
git tag 版本号 commitID
- 查看当前标签列表
标签不是按时间顺序列出,而是按字母排序的。可以用git show <tagname> 息
git tag
- 删除标签
git tag -d 标签名
- 推送某个标签到远程
git push origin 标签名
- 一次性推送全部尚未推送到远程的本地标签
git push origin --tags
- 删除远程标签
标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除
git tag -d 标签名
git push origin :refs/tags/标签名
- 查看分支合并图
git log --graph
网友评论