1,安装好Git
后注册一个gitee,gitlab或github的账号
2,设置用户名称和email地址。
这是非常重要的,应为每次Git提交都会使用该用户的信息。但需要注意的是这里的用户名称名称和email地址与我们远程仓库的用户名和地址是没有关系的,这里的信息不是用作认证的,主要是标识的作用。
# 配置用户名 git config --global user.name "username" # 配置邮箱 git config --global user.email "username@email.com" # 查看配置信息 git config --list git config user.name
以上的配置信息保存在~/.gitconfig文件中
3 ,获取git仓库
在本地初始化一个git仓库
打开git bush here 进入你需要操作的文件夹内,使用一下命令初始化. 之后会发现目录下出现一个.git文件夹。同时该文件夹出现也说明了本地的git仓库创建成功了。需要注意的事.git文件夹是隐藏的需要设置显示隐藏文件夹。
git init
从远程克隆一个仓库
从远程仓库拿到仓库地址后执行一下命令,进入需要放置的文件夹内
git clone 远程仓库地址
4,工作目录,暂存区以及版本库的概念
版本库:.git文件夹就是版本库,版本库配置了很多配置信息,日志信息和文件版本信息等
工作目录(工作区):包括.git文件夹的目录就是公作目录,日志信息和文件版本信息等
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区也可以叫做stage,暂存区是一个临时保存文件修改的地方
5 , git目录文件下的两种状态:
- untracked未跟踪(没有被纳入版本控制)
- tracked 已跟踪(被纳入版本控制)
6,本地仓库操作
#查看文件的状态 git status #查看文件信息简洁 git status -s #将一个未跟踪的状态变成已暂存的状态 加入到暂存区 git add 文件名 #将一个已暂存的文件变成未跟踪状态 git reset 文件名 #将暂存区的文件修改提交到本地仓库 -m后面的是日志信息 不使用-m参数也是可以的 但使用-m参数更方便 git commit -m "update 某文件" #删除本地文件 默认把删除的操作加入到了暂存区 git rm 文件名 #将文件加入到忽略列表 在工作目录创建一个名为.gitignore文件(固定) #创建文件 (这里的是linux命令,Git 模拟的是Linux的环境) touch .gitignore #查看日志 git log
注意要想提交一个文件必须先将它加到暂存区
7, 远程仓库的操作
- 查看远程仓库,执行以下命令后会列出指定的每一个远程服务器的简写,如果已经克隆了远程仓库,那么至少应该能够看到origin,这是Git仓库的仓库服务器默认名字。注意: 只要仓库是克隆来的默认配置了一个远程仓库
git remote (-v) #更详细的 git remote show origin
- 添加远程仓库 同时制定一个可以应用的简写 注意:一个本地仓库可以添加多个远程仓库
git remote add <shortname> <url>
- 从远程仓库克隆
git clone url
- 移除无效的远程仓库 (移除的是本地与远程的关联关系,并不会真正的影响原地的仓库)
git remote rm <shortname>
- 从远程仓库抓取与拉取
git pull #从远程抓取最新的文件到本地,并合并 git fetch #抓取文件 抓取的文件在.git/object下以二进制的形式,在.git 文件所在的目录下没有文件增加(抓取的文件没有合并) git merge origin/master #把用git fetch的文件合并到工作目录下
- 推送到远程仓库
git push [remote-name][branch-name]
例如git push origin master 使用前需要与远程仓库添加关联,输入该命令回车会弹出Windows 安全中心窗口需要你登入远程仓库(输入账号与密码),推送成功后远程仓库就能看到性推送的文件了
8,Git分支
几乎所有的版本控制器都支持分支
查看所有本地分支 需要注意的是分支分为本地分支以及远程分支
git branch
查看远程分支
git branch -r
查看所有的分支(远程和本地)
git branch -a • 1
创建本地分支
git branch <branch-name> • 1
合并本地分支
git merge <branch-name>
- 合并分支会遇到的问题:
有时候合并分支并不会如此的顺利。如果你需要在不同的分支中对同一段代码进行了不同的修改,Git就没有办法合并他们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突的内容,最后执行git add 命令来标识冲突已经解决
- 将新添加的文件推送到远程的分支
git push origin <branch-name>
- 删除本地分支
git branch -d <branch-name>
注意:如果需要删除的分支进行了一些开发的动作,此时执行上面的删除命令并不能删除分支,如果坚持要删除此分支,可以将上面的-d改成-D (强制删除),但不建议这样做因为存在一定的风险。并且也需要注意不能删除此刻所处的分支。
- 删除远程仓库分支
git push origin -d <branch-name>
9,Git标签
像其他的版本控制系统一样,git可以给历史的某一个提交打上标签,以表示重要。比较有代表性的是人们会用这个功能来标记发布节点(v1.0,v1.2等)。标签指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记的状态。
- 创建一个新的标签
git tag [tagName] • 1
- 查看tag信息
git show [tagName] • 1
- 将标签推送到远程仓库
git push [remote][tagName]
eg : git push origin v1.0
- 检出标签(用于版本发布)
- 新建一个分支,指向tag
git checkout -b [branch-name] [tag-name]
注意:此处版本号应该从v1.0开始(此处可能不同的版本情况可能会不一样)
$ git checkout -b dev12 v0.1 fatal: 'v0.1' is not a commit and a branch 'dev12' cannot be created from it ############################# $ git checkout -b dev1 v2.0 fatal: 'v2.0' is not a commit and a branch 'dev1' cannot be created from it ############################ $ git checkout -b dev1 v1.0 Switched to a new branch 'dev1'
- 删除本地标签
git tag -d [tag-name] • 1
- 删除远程标签
git push origin:refs/tags/[tag-name] • 1
最后来个测试: