一、版本控制
1. 集中式版本控制与分布式版本控制。
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
2.Git工作流程
Workspace: 工作区,就是你平时存放项目代码可以看到的目录。
Index / Stage: 暂存区,英文叫 stage 或 index。用于临时存放你的改动,事实上它只是一个文件,一般存放在 .git 目录下的 index 文件(.git/index)中,保存即将提交到文件列表信息。
Repository: 工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。
Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。
1. clone(克隆): 从远程仓库中克隆代码到本地仓库。
2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订。
3. add(添加): 在提交前先将代码提交到暂存区。
4. commit(提交): 提交到本地仓库。本地仓库中保存修改的各个历史版本。
5. fetch (抓取) : 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少。
6. pull (拉取) : 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch + merge。
7. push(推送) : 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库 。
二、Git安装与常用命令
下载地址: https://git-scm.com/download
1. 当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。
设置用户信息:
git config --global user.name “xxx” git config --global user.email “hello@xxx.cn”
查看用户信息:
git config --global user.name git config --global user.email
2.乱码问题解决
打开GitBash执行下面代码:
git config --global core.quotepath false
${git_home}/etc/bash.bashrc 文件最后加入下面两行代码
export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8"
3.常用命令
1、新建代码库
# 在当前目录新建一个Git代码库 git init # 新建一个目录,将其初始化为Git代码库 git init [project-name] # 下载一个项目和它的整个代码历史 git clone [url]
2、查看文件状态
#查看指定文件状态 git status [filename] #查看所有文件状态 git status
3、工作区<-->暂存区
# 添加指定文件到暂存区 git add [file1] [file2] ... # 添加指定目录到暂存区,包括子目录 git add [dir] # 添加当前目录的所有文件到暂存区 git add . #当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件了, 可以使用(⚠️) git rm file_path #当我们需要删除暂存区或分支上的文件, 但本地又需要使用, 这个时候直接push那边这个文件就没有,如果push之前重新add那么还是会有。 git rm --cached file_path #直接加文件名 从暂存区将文件恢复到工作区,如果工作区已经有该文件,则会选择覆盖 #加了【分支名】 +文件名 则表示从分支名为所写的分支名中拉取文件 并覆盖工作区里的文件 git checkout
4、工作区<-->资源库(版本库)
#将暂存区-->资源库(版本库) git commit -m '该次提交说明' #如果出现:将不必要的文件commit 或者 上次提交觉得是错的 或者 不想改变暂存区内容,只是想调整提交的信息 #移除不必要的添加到暂存区的文件 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。