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

【Git】(1)---工作区、暂存区、版本库、远程仓库

posted @ 2019-09-08 17:46  安小  阅读(161)  评论(0编辑  收藏  举报