- 常见集中式版本控制系统:CVS,SVN。
常见分布式版本控制系统:Git,Mercurial,Bazaar。 - git跟踪并管理的式修改,而非文件。
git init
:初始化一个git仓库。git add <filename>
:把文件修改添加到暂存区。git commit -m "<message>"
:把暂存区的所有文件提交到当前的分支。
上面这两个命令合起来可以表述为:添加文件到Git仓库git status
:查看工作区的状态。git diff
:查看所有文件在工作区和暂存区的差别。
git diff <filename>
:查看制定文件在工作区和暂存区的差别 。git diff <branch> <filename>
: 查看和另一个分支的区别。
git diff cached
: 查看暂存区和本地git仓库的差别。git log
:查看所有提交过的版本信息(只包含当前分支)。git log --pretty=oneline
:将每个提交放在一行显示。git reflog
:查看整个本地仓库的commit和reset等。包括所有branch的commit和reset等,甚至包含已经撤销的commit,只要HEAD发生了变化,就会在reflog里面看到。git reset --hard HEAD^
:回退到上一个版本。HEAD指向的版本就是当前的版本。git reset --hard <commit_id>
:回退到commit_id的版本。- 工作区(working directory):指的是电脑里面能看到的目录。
版本库(repository):工作区里的一个隐藏目录(.git)。 git diff HEAD -- readme.txt
:查看工作区和版本库里最新版本的区别。git checkout -- readme.txt
:丢弃工作区中对readme.txt的修改(一键还原)。git reset HEAD readme.txt
:把暂存区的修改撤销掉(unstage),重新放回工作区。git rm <filename>
:从版本库中删除文件。git remote add origin <repositoryAddress>
:关联一个远程仓库,其中origin相当于远程仓库地址的一个别名。git push -u origin master
: 将本地仓库的master分支推送到远程仓库。 第一次推送时需要加上-u
参数,之后就不需要了。git clone <repositoryAddress>
:从远程仓库clone一个本地库。git checkout -b dev
:创建并切换到dev分支上。相当于:git branch dev
,git checkout dev
这两条命令。git branch
:查看所有分支,当前分支前面会有一个*。git checkout master
:切换到master分支上。git merge dev
:合并dev分支当当前分支上。git branch -d dev
:删除dev分支。git log --grap --pretty=oneline --abbrev-commit
用带参数的git log可以看到分支的合并情况。git merge --no-ff -m <merge with no-ff> dev
: 合并分支时,加上--no-ff
参数就可以用普通模式合并,这样合并后的历史有分支,能看出来曾经做过合并,而 fast forward模式合并之后则看不出来。git stash
:可以把当前工作现场存储起来,等以后恢复现场后继续工作。 用于在一个分支上工作到一半时,还不能提交,有需要修复紧急bug时。当bug修复后,可以使用git stash list
:查看刚才存储的工作县城,需要恢复现场则用git stash pop
:可以在恢复的同时把stash的内容也删了。git branch -D <branchname>
:强行删除一个还没有合并过的分支。git remote
:查看远程库的信息。git remote -v
:查看更详细的远程库的信息。git checkout -b dev origin/dev
:创建远程origin的dev分支到本地。(当我们从远程库clone时,默认情况下,只能看到本地的master分支,当我们要在dev分支上开发时,就要创建远程origin的dev分支到本地)git pull
:把最新的提交从origin/dev上抓下来,在本地合并,解决冲突之后,再推送。如果没有指定本地dev与origin/dev的链接,就需要先设置链接:git branch --set-upstream dev origin/dev
git tag <tagName>
:给当前分支的最新版本打上一个标签。git tag <tagName> <commit_id>
:给指定的commit_id的版本打标签。git tag
:查看标签。默认标签是按照字母排序的。git show <tagName>
:查看标签的详细信息git tag -a <tagName> -m <message> <commit_id>
:创建带有说明的标签。git tag -d <tagName>
:删除标签。因为创建的标签都只存储在本地,不会自动推送到远程,所以打错的标签可以在本地安全的删除。git push origin <tagName>
:推送某个标签到远程。或者一次性推送全部尚未推送到远程的本地标签:git push --tags
。- 如果标签已经推送到了远程,现在要删除,就需要先从本地删除:
git tag -d <tagName>
然后,从远程删除:git push origin :refs/tags/<tagName>
。
Git常用操作
最新推荐文章于 2024-09-14 09:16:55 发布