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 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
Git 安装包下载地址:http://git-scm.com/downloads
Git 常用命令
1、新建代码库 # 在当前目录新建一个Git代码库 git init # 下载一个项目和它的整个代码历史 git clone [url] 2、查看文件状态 #查看指定文件状态 git status [filename] #查看所有文件状态 git status 3、工作区<-->暂存区 # 添加指定文件到暂存区 git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 git add [dir] # 添加当前目录的所有文件到暂存区 git add . #当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了 git rm file_path #当我们需要删除暂存区或分支上的文件, 但本地又需要使用 git rm --cached file_path #直接加文件名: 从暂存区将文件恢复到工作区,如果工作区已经有该文件,则会选择覆盖 #加了【分支名】 +文件名: 则表示从分支名为所写的分支名中拉取文件 并覆盖工作区里的文件 git checkout 4、工作区<-->资源库(版本库) #将暂存区-->资源库(版本库) git commit -m '该次提交说明' #移除不必要的添加到暂存区的文件 git reset HEAD 文件名 #去掉上一次的提交(会直接变成add之前状态) git reset HEAD^ #去掉上一次的提交(变成add之后,commit之前状态) git reset --soft HEAD^ 5、远程操作 # 取回远程仓库的变化,并与本地分支合并 git pull # 上传本地指定分支到远程仓库 git push 6、其它常用命令 # 显示当前的Git配置 git config --list # 编辑Git配置文件 git config -e [--global] #初次commit之前,需要配置用户邮箱及用户名,使用以下命令: git config --global user.email "you@example.com" git config --global user.name "Your Name" #调出Git的帮助文档 git --help #查看某个具体命令的帮助文档 git +命令 --help #查看git的版本 git --version
Git 远程操作
远程仓库的master主分支下载最新的版本到origin/master分支上
git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin master:brantest
Git分支操作
1)创建并切换分支
git checkout -b dev
或 git branch dev; git checkout dev
2)删除分支
git branch -d dev
3)合并分支
git checkout dev
git add .
git commit -m "c5"
git checkout master
git merge -m "merge dev" (快速合并) 或 git merge --no-ff -m "merge dev"
git log --graph --pretty=oneline --abbrev-commit
以下是合并前后的分支情况:
下图没有使用Fast-forward模式 ,可以看出,使用no-ff后,会多生成一个commit 记录,并强制保留develop分支的开发记录(而fast-forward的话则是直接合并,看不出之前Branch的任何记录)
4)解决冲突
a. 提交修改
b. 编辑冲突文件
c. 重新提交解决冲突
5)切换分支时保存未commit的更改
假设当前你在修改task分支, 此时你需要切换到另外一个分支develop,但这时你的代码还没有提交,会提示切换失败,可以使用git stash 保存当前的状态。
使用git stash保存当前的状态
保存多个stash
他们会放在一个stash的列表中。你可以根据表示符来解除对应的stash并且恢复未提交的变更。以下命令可查看stash列表,并恢复某个stash版本的内容:
git stash list # 查看stash列表
git stash apply stash@{0}
参考文章:
https://www.cnblogs.com/videring/articles/6962005.html