git是分布式管理系统,分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库。团队协作时,每个人将自己的修改推送给git,就能看到互相的修改了。
使用git时工作区、暂存区、本地仓库、远程之间的关系:
工作区和暂存区:
-
git status
查看仓库当前的状态 -
git diff
查看修改的内容-
git diff HEAD -- <file name>
工作区/暂存区和本地仓库里面最新版本的区别
-
-
git add
将修改从工作区保存到暂存区git add <flie name>
-
git add .
添加所有修改的文件到暂存区
-
git commit -m 'description'
将修改提交到本地仓库
版本回退:
-
git log
查看提交历史记录,带有commit id
记录-
git log --pretty-oneline
简短的显示历史提交记录
-
-
git reflog
查看所有(包括会退的)commit 记录
在git中,用HEAD
指向当前分支,上一个版本HEAD^
,上两个版本可以写成HEAD~2
,以此类推。
-
git reset --hard HEAD^
本地仓库回退到上一个版本 -
git reset --hard <commit id>
回退到某一个版本
撤销修改:
-
git checkout -- <file name>
让这个文件回到最近一次git commit
或git add
时的状态 -
git reset HEAD <file name>
把暂存区的修改回退到工作区
删除文件
git rm <file name>
分支管理
-
git branch newBranch
新建分支 -
git checkout newBranch
切换到该分支-
git checkout -b newBranch
新建分支并切换到该分支 -
git checkout -b <branch name> origin/<branch name>
在本地创建和远程分支对应的分支
-
-
git branch --set-upstream branch-name origin/<branch name>
建立本地分支和远程分支的关联 -
git merge <branch name>
合并某分支到当前分支 -
git branch -d <branch name>
删除分支- 如果要丢弃一个没有被合并过的分支,可以通过
git branch -D <name>
强行删除
- 如果要丢弃一个没有被合并过的分支,可以通过
-
git stash
将修改暂存 -
git stash pop
恢复
多人协作
-
git remote -v
查看远程仓库信息 -
git pull
抓取远程的新提交 -
git push origin <branch name>
从本地推送分支
标签管理
-
git tag <tag name>
用于新建一个标签,默认为HEAD
,也可以指定一个commit id
-
git tag -a <tag name> -m 'description'
可以指定标签信息 -
git tag
查看所有标签
操作标签
-
git push origin <tag name>
推送一个本地标签 -
git push origin --tags
推送全部未推送过的本地标签 -
git tag -d <tag name>
删除一个本地标签 -
git push origin :refs/tags/<tag name>
删除一个远程标签
力荐:参考来源