Git使用手册
1.git与svn区别
- Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
- Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
- Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
- Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
- Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
2.基本的操作流程
创建一个新的仓库,并提交
git init
git add README.md
git commit -m "first commit"
git branch -M master
git remote add origin https://xxxx/xxxx.git
git push -u origin master
将本地代码推送到已存在的仓库中
git remote add origin https://xxx/xxx.git
git branch -M master
git push -u origin master
3.基本命令使用介绍
3.1初始化当前目录为git仓库
git init
该命令执行完后会在当前目录生成一个 .git 目录。
3.2使用我们指定目录作为Git仓库。
git init newrepo
初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
3.3将新文件纳入版本控制,并提交
git add *.c
or
git add README
or
git add .
- 将.c结尾的文件纳入版本控制。
- 将README文件纳入版本控制。
- git add . ,将目录下所有的文件纳入版本控制。
3.4将纳入版本控制的文件提交到本地仓库
git commit -m '初始化项目版本'
其中,注释内容随便填写
3.5克隆仓库
git clone <repo>
如果我们需要克隆到指定的目录,可以使用以下命令格式:
git clone <repo> <directory>
参数说明:
- repo:Git 仓库。
- directory:本地目录。
3.6git 的设置
git config --list
编辑git的配置
针对当前仓库
git config -e
针对系统上的所有仓库
git config -e --global
3.7设置提交代码时的用户信息
git config --global user.name "PopsiCola"
git config --global user.email PopsiCola@163.com
参数说明:
- user.name:提交用户名
- user.email:提交者邮箱
- 如果去掉 --global 参数只对当前仓库有效。
3.8提交与修改
命令 | 说明 |
---|---|
git add | 添加文件到仓库 |
git status | 查看仓库当前的状态,显示有变更的文件。 |
git diff | 比较文件的不同,即暂存区和工作区的差异。 |
git commit | 提交暂存区到本地仓库。 |
git reset | 回退版本。 |
git rm | 删除工作区文件。 |
git mv | 移动或重命名工作区文件。 |
3.9提交日志
命令 | 说明 |
---|---|
git log | 查看历史提交记录 |
git blame | 以列表形式查看指定文件的历史修改记录 |
3.10远程操作
命令 | 说明 |
---|---|
git remote | 远程仓库操作 |
git fetch | 从远程获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
4.Git分支操作
创建分支命令
git branch (分支名)
切换分支命令
git checkout (分支名)
创建并切换分支
git checkout -b (分支名)
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
删除分支命令
git branch -d (分支名)
合并分支命令
git merge (分支名)
将分支合并到主分支