https://learngitbranching.js.org/
一个很好玩的熟悉git命令的游戏,
- Git是分布式的scm,SVN是集中式的
- Git每个历史版本存储完整,svn存储差异
- Git可以离线完成大部分操作,SVN相反
Git有更优雅的分支和合并实现
Git有更强的撤销修改和修改版本的历史的能力
Git速度更快,效率更高,Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针,当你回退版本的时候,Git仅仅是把HEAD从指向append GPL.
Git 查看版本指令 which -a git
Git 切换版本 直接到配置文件 vim bash_profile
增删改查
增 Git config —global user.name liushenghua
删 git config —global —unset user.name liushenghua(y一个名字 可以不带参)
查 git config —get user.name
改 git config —global user.name haha
罗列全局参数
Git config —list global
1)远程仓库相关命令
检出仓库:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
2)分支(branch)操作相关命令
查看本地分支:$ git branch
查看远程分支:$ git branch -r
创建本地分支:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:$ git checkout [name]
创建新分支并立即切换到新分支:$ git checkout -b [name]
删除分支:$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):$ git push origin [name]
删除远程分支:$ git push origin :heads/[name]
git remote prune origin
vscode删除远程分支命令
打开文件方式 vi/vim 文件名称(终端修改) 弹窗修改 open 文件名
Git reset —hard HEAD 当前版本
Git reset —hard HEAD^ 上一版本
Git reset —hard HEAD~100 上100版本
Git reset —hard 版本号
git co -b dev 创建并打开分支
git br -d dev 删除分支
git br -r -d dev 删除远程分支记录
git push origin -d dev 删除远程分支
git br -D dev 删除分支
git br dev 创建分支
git br 查看本地分支
git br -a 查看所有分支
git br -r 查看远程分支
git stash 隐藏工作区的更改下次接下来再改 因为不commit 无法切换分支
git stash list 查看
git stash apply 恢复
git stash apply 恢复且删除
git remote 查看远程库的信息
git remote -v 查看远程库的详细信息
- git stash apply恢复,恢复后,stash内容并不删除,你需要使用命令git stash drop来删除。
- 另一种方式是使用git stash pop,恢复的同时把stash内容也删除了。
创建远程分支1:可以在远程创建分支 本地创建与远程一样的分支 git push然后关联
创建远程分支2:可以在本地创建分支 git push到远程 会自动创建和关联
创建本地分支关联远程分支 git checkout –b dev origin/dev
查询版本号 git reflog 用来记录你的每一次命令.
git log --graph命令可以看到分支合并图
工作区 自己修改的文件区域 git add 后 直接到暂存区
暂存区 .git 文件作用的区域 不属于工作区 commit后直接到分支上
Commit只负责 把暂存区的文件提交到分支上
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
git push -u origin master 第一次推送到远程分支加 -u 以后 都不需要
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步
用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区
dev分支的工作成果合并到master分支上,使用如下命令 git merge dev
用git log --graph命令可以看到分支合并图。
合并dev分支,使用命令 git merge –no-ff -m “注释” dev
开发一个新feature,最好新建一个分支;
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
现在我们的小伙伴要在dev分支上做开发,就必须创建远程origin的dev分支到本地,于是可以使用命令创建本地dev分支:git checkout –b dev origin/dev
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。
网友评论