一、
Git vs SVN
1. Git 是本地离线存储、分布式的
开发人员从服务器上克隆一个版本至本机的版本库,无网络环境时仍然能够提交文件,查看
历史版本记录,创建项目分支等【体现了分布式】。
2. Git 复杂概念多,SVN 简单易上手
3. Git 分支模式非常高效
SVN 分支都是实际的多个文件目录,Git 则仅仅是一份资源根据分支号来加载对应版本的资
源代码。
二、客户端安装
Git 客户端下载地址(32 位 64 位请对位安装):
客户端下载地址:https://git-scm.com/downloads
安装详解: https://blog.csdn.net/z306560366/article/details/79193524
TortoiseGit
客户端下载地址:https://tortoisegit.org/download
安装详解地址:https://blog.csdn.net/dengjin20104042056/article/details/81948099
使用详解地址: https://www.cnblogs.com/xuwenjin/p/8573603.html
三、
Git
核心概念
Git 最核心的一个概念就是工作流。
工作区(Workspace)是电脑中实际的目录。
暂存区(Index)类似于缓存区域,临时保存你的改动。
仓库区(Repository),分为本地仓库和远程仓库。
从 SVN 切换到 Git,最难理解并且最不能理解的是暂存区和本地仓库。
通常提交代码分为几步:
git
add 从工作区提交到暂存区
git
commit 从暂存区提交到本地仓库
git
push 或 git svn dcommit 从本地仓库提交到远程仓库
四、初始化
#
在当前目录新建一个
Git
代码库
$ git init
#
下载一个项目和它的整个代码历史
[Git only]
$ git clone [url]
五、配置
#
列举所有配置
$ git config -l
#
设置提交代码时的用户信息
$ git config [--global] user.name "[name]"
$ git config [--global] user.email "[email address]"
Git
用户的配置文件位于
~/.gitconfig
Git
单个仓库的配置文件位于
~/$PROJECT_PATH/.git/config
六、增删文件
#
添加当前目录的所有文件到暂存区
$ git add .
#
添加指定文件到暂存区
$ git add <file1> <file2> ...
#
添加指定目录到暂存区,包括其子目录
$ git add <dir>
#
删除工作区文件,并且将这次删除放入暂存区
$ git rm [file1] [file2] ...
七、分支
#
列出所有本地分支
$ git branch
#
列出所有本地分支和远程分支
$ git branch -a
#
新建一个分支,但依然停留在当前分支
$ git branch [branch-name]
#
新建一个分支,并切换到该分支
$ git checkout -b [new_branch] [remote-branch]
#
切换到指定分支,并更新工作区
$ git checkout [branch-name]
#
合并指定分支到当前分支
$ git merge [branch]
#
删除本地分支,
-D
参数强制删除分支
$ git branch -d [branch-name]
#
删除远程分支
$ git push [remote] :[remote-branch]
八、提交
#
提交暂存区到仓库区
$ git commit -m [message]
#
提交工作区与暂存区的变化直接到仓库区
$ git commit -a
#
提交时显示所有
diff
信息
$ git commit -v
#
提交暂存区修改到仓库区,合并到上次修改,并修改上次的提交信息
$ git commit --amend -m [message]
#
上传本地指定分支到远程仓库
$ git push [remote] [remote-branch]
九、拉取
#
下载远程仓库的所有变动
(Git only)
$ git fetch [remote]
#
取回远程仓库的变化,并与本地分支合并,
(Git only),
若使用
Git-SVN
,请查看第三节
$ git pull [remote] [branch]
#
取回远程仓库的变化,并与本地分支变基合并,
(Git only),
若使用
Git-SVN
,请查看第三
节
$ git pull --rebase [remote] [branch]
十、撤销
#
重置暂存区的指定文件,与上一次
commit
保持一致,但工作区不变
$ git reset [file]
#
重置暂存区与工作区,与上一次
commit
保持一致
$ git reset --hard
#
重置当前分支的指针为指定
commit
,同时重置暂存区,但工作区不变
$ git reset [commit]
#
重置当前分支的
HEAD
为指定
commit
,同时重置暂存区和工作区,与指定
commit
一致
$ git reset --hard [commit]
#
新建一个
commit
,用于撤销指定
commit
$ git revert [commit]
#
将未提交的变化放在储藏区
$ git stash
#
将储藏区的内容恢复到当前工作区
$ git stash pop
十一、查询
#
查看工作区文件修改状态
$ git status
#
查看工作区文件修改具体内容
$ git diff [file]
#
查看暂存区文件修改内容
$ git diff --cached [file]
#
查看版本库修改记录
$ git log
#
查看某人提交记录
$ git log --author=someone
#
查看某个文件的历史具体修改内容
$ git log -p [file]
#
查看某次提交具体修改内容
$ git show [commit]
十二、常用步骤
git status
git checkout dev
git pull
git add .
git commit -m “message”
git push
git checkout master
git merge dev
git push origin master