Git常用操作

xiaoxiao2021-02-28  91

常见集中式版本控制系统: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/devgit 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>。
转载请注明原文地址: https://www.6miu.com/read-81755.html

最新回复(0)