一、git的本地操作
1、git的基本原理
解析:workspace是工作区,index是暂存区,local repository是本地仓库,remote repository是远程区。
a、增加代码之后,会将新增的代码保存在index区域,然后commit之后上传到本地仓库local repository;
b、本地仓库local repository经过push后上传到remote repository(远程仓库)
c、远程仓库经过fetch之后,下载到local repository本地仓库。
2、在git中的绝大多数操作都只需要访问本地文件和资源,不用连网。
因为Git在本地磁盘上就保存着所有当前项目的历史更新,速度相对也比较快。
- 查看本地和远程分支:git branch -a
- 切换分支:切换到dev分支:git checkout dev
- 查看read.txt被修改的记录:git log --pretty=oneline read.txt
3、修改一个文件并提交到本地的流程
- 修改read.txt内容:vi read.txt
- 查看工作状态,比如查看read.txt为被修改状态:git status
- 提交本次修改到本地仓库,要加上修改记录,不然无法提交:git commit -m “修改read.txt”
- 提交到本地之后,需要再次查看状态:git status
- 重新查看read.txt的修改记录,多了一条数据。
4、查看提交历史
在提交了若干更新之后,又或者克隆了某个项目,想回顾提价历史,可以使用git log查看
- git log:显示所有提交日志
- git log -p 2:显示最近两次提交日志
- git log --pretty =oneline(显示所有commitid记录和提交日志)
- git reflog(本地执行的git相关命令)
5、撤销操作
- git commit -amend(修改提交日志内容或者补充提交文件)
- git reset HEAD file(取消暂存区执行的add操作)
- git checkout --file(取消已修改但未add到暂存区的文件,如果不加 --file,直接“.”,则是放弃所有修改:该命令要慎用)
- git checkout .(放弃所有修改:该命令要慎用)
6、回退操作
- git reset -mixed:此为默认方式,不带任何参数的git reset,即是这种方式,它回退到某个版本,只保留源码,回退commit和index信息
- git reset -soft:回退到某个版本,只是回退了commit的信息,不会恢复到index file一级,如果还要提交,直接commit即可
- git reset -hard:彻底回退到某个版本,本地的源码也会变成上一个版本的内容
二、git的远程操作
要参与任何一个git项目的协作,必须要了解如何管理远程仓库。远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外的可以写。
同其他人协作开发某个项目,需要管理这些远程仓库,以便推送或者拉取数据,分享各自的工作进展。管理远程仓库的工作,包括添加远程仓库,移除废弃的远程库,
管理各式远程分支,定义是否跟踪这些分支等等。
1、从远程取得项目的Git仓库
git clone https://gitnew.hundsun.com/caixm/test02.git
2、远程仓库的使用
- 显示远程仓库地址:git remote -v
- 增加远程仓库地址:git remote add remote-URL
- 修改现有远程仓库地址:git remote set-url test URL
- pull的命令等于:git pull ==git fetch remote-url&&git merge branch
- 提交到远程仓库:git push origin master
3、打标签
同大多数VCS一样,git也可以对某一时间点上的版本打上标签。人们在发布某个软件版本(比如V1.0等)的时候,经常这么做。
- 显示标签:git tag
- 打标签:git tag -a V2.5 -m “gitlab”
- 在某个commitid上打标签:git tag -a v2.6 commitid
- 模糊匹配V2.*开头的标签:git tag -l “V2.*”
- 删除标签,删除后推送到远程仓库,执行git push:git tag -d V2.6
4、分支管理
- 创建并切换分支,在该分支上修复bug:git checkout -b hotfix
- bug完成修复后,切换到master,再合并hotfix到master:git checkout master
- 删除hotfix分支:git branch -d hotfix
- 查看本地分支和远程分支情况:git branch -a