git使用中的一些命令及心得
Git 与 SVN 区别点:
1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心
的区别。
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个
类似 .svn、.cvs 等的文件夹里。
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整
性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
命令:
0.切换磁盘,从C盘切换到E盘: cd E: ; 与cmd不同,cmd为: E: ;
1.创建一个名为test的目录 : mkdir test
2.初始化一个 Git 仓库,即把这个目录变成Git可以管理的仓库: git init
3.Git 配置 : git config + 其他相关命令(参考:https://www.runoob.com/git/git-install-
setup.html 或 https://www.liaoxuefeng.com/wiki/896043488029600/897013573512192强烈建议新手同学看此文档)
4.把文件添加到仓库 : git add 文件
5.把文件提交到仓库 : git commit -m '提交注释'
6.查看在你上次提交之后是否有修改: git status
7.查看执行 git status 的结果的详细信息: git diff
8.查看提交历史记录:git log
8.1 查看分支合并情况:git log --graph --pretty=oneline --abbrev-commit
9.版本回退: git reset --hard HEAD~1->回退到上个版本
10.记录你的每一次命令 : git reflog
11.添加远程库: git remote add origin(远程库的名字) 远程库url
12.推送:git push -u origin master
13.拉取:git pull origin master
14.克隆: git clone [url]
15.创建分支命令:git branch (branchname)
15.1 列出分支基本命令:git branch
15.2 删除分支:git branch -d (branchname)
16.切换分支命令:git checkout (branchname)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所
以多个分支不需要多个目录。
16.1 创建并切换分支:git checkout -b (branchname)
16.1 创建远程分支:git checkout -b (branchname) (远程版本库名:origin)/(远程branchname)
16.2 设置本地分支和远程分支的链接:git branch --set-upstream-to=origin/<branch> dev
17.合并某分支到当前分支:git merge <name>
17.1 强制禁用Fast forward模式(Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息):
git merge --no-ff -m "merge with no-ff" dev
18.储藏分支未添加的修改内容:git stash
18.1 查看位置:git stash list
18.2 恢复并删除:
(1)一是用git stash apply <stashname>恢复,但是恢复后,stash内容并不删除,
你需要用git stash drop来删除;
(2)另一种方式是用git stash pop,恢复的同时把stash内容也删了;
心得:
1.分支,git中的分支可看做一个单独版本库
2.切换分支代码自动匹配为切换分支的代码(官方:当你切换分支的时候,Git 会用该分支的最后提交的快
照替换你的工作目录的内容, 所以多个分支不需要多个目录。);例如:A分支切换到B分支,代码为B分支
的,相反为A的,不用拉取
3.合并分支,将A分支合并到B分支,是将A中的代码添加到B中,A中的不变
尝试合并两个分支,特点:master分支中有和newmaster2分支相同的文件夹及文件,但
内容不同,合并时要解决冲突,选中冲突文件更改为冲突解决,提交,完成
4.储藏功能:将当前分支中的修改进行一个保存,并将当前分支恢复至未修改前。当需要重新进行时,应用
即可
5.标签可以快速找到需要的版本