标签:这一 git reset 执行 lob 信息 pull 配置管理 部分 撤销
一、Git是什么
Git是免费、开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理
- 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一
- 以毕业论文为例,版本控制就是这些论文变更的管理,学会了它就可以避免今后大家写论文出现以下这种情况:
- 分布式版本控制系统,就是远程仓库同步所有版本信息到本地的每个用户。用户在本地就可以查看所有的历史版本信息。当别的用户更改过项目时,用户可以远程更新一下,就能看到最新版的项目。
1.1 git四大工作区
- Workspace:你电脑本地看到的文件和目录,在Git的版本控制下,构成了工作区。
- Index/Stage:暂存区,一般存放在 .git目录下,即.git/index,它又叫待提交更新区,用于临时存放你未提交的改动。比如,你执行git add,这些改动就添加到这个区域啦。
- Repository:本地仓库,你执行git clone 地址,就是把远程仓库克隆到本地仓库。它是一个存放在本地的版本库,其中HEAD指向最新放入仓库的版本。当你执行git commit,文件改动就到本地仓库来了~
- Remote:远程仓库,就是类似github,码云等网站所提供的仓库,可以理解为远程数据交换的仓库~
1.2 git工作流程
- 从远程仓库拉取文件代码回来;
- 在工作目录,增删改查文件;
- 把改动的文件放入暂存区;
- 将暂存区的文件提交本地仓库;
- 将本地仓库的文件推送到远程仓库;
二、Git常用命令
1. 下载安装git
https://git-scm.com/downloads
配置git:安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改
git config --global user.name "John Doe"
git config --global user.email "johndoe@example.com"
2. 创建新仓库
1)创建新文件夹
2)在该文件夹下右键打开git bash here
,然后执行git init
以创建新的 git 仓库
3)到gitlab 或github网站上新建一个项目,复制SSH
4)使用如下命令将你的仓库连接到某个远程服务器:
git remote add origin <复制的SSH>
5)一般仓库都有README.md
touch README.md # 生成README
3. 克隆远程版本库到本地
执行如下命令以创建一个本地仓库的克隆版本:
git clone /path/to/repository
如果是远端服务器上的仓库,你的命令会是这个样子:
git clone username@host:/path/to/repository
4. 开发分支
git checkout -b dev # 创建开发分支dev,并切换到该分支下
git checkout dev # 创建开发分支dev,不切换
git checkout master # 回到主分支
git branch # 查看本地所有的分支
git branch -r # 查看所有远程的分支
git branch -a # 查看所有远程分支和本地分支
git branch -d dev # 把分支dev删掉
5. 添加与提交
git add . # 添加当前目录的所有文件到暂存区
git add [dir] # 添加指定目录到暂存区,包括子目录
git add [file1] # 添加指定文件到暂存区
git commit -m "代码提交信息" #提交暂存区到仓库区
6. 提交到仓库
git push -u origin <master> # master可以改为其他分支
git push origin <branch> #
7. 查看提交历史/提交日志
git log # 查看提交历史
git log --oneline # 以精简模式显示查看提交历史
git log -p <file> # 查看指定文件的提交历史
8. 更新本地仓库到最新改动
git pull # 拉取远程仓库所有分支更新并合并到本地分支
git pull origin master # 将远程master分支合并到当前本地分支
git pull origin master:master # 将远程master分支合并到当前本地master分支,冒号后面表示本地分支
git fetch --all # 拉取所有远端的最新代码
git fetch origin master # 拉取远程最新master分支代码
9. 显示改动
git diff # 显示暂存区和工作区的差异
git diff filepath # filepath路径文件中,工作区与暂存区的比较差异
git diff HEAD filepath # 工作区与HEAD (当前工作分支)的比较差异
git diff <branchName> filepath # 当前分支的文件与branchName分支的文件的比较差异
git diff commitId filepath # 与某一次提交的比较差异
10. 合并分支
我们在开发分支dev开发、测试完成在发布之前,我们一般需要把开发分支dev代码合并到master
git merge dev # 在当前分支(比如master)上合并dev分支过来
git merge --no-ff origin/dev # 在当前分支上合并远程分支dev
git merge --abort # 终止本次merge,并回到merge前的状态
11. 解决冲突
- 查看冲突文件内容
- 确定冲突内容保留哪些部分,修改文件
Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,<<<<<<<HEAD是指主分支修改的内容,>>>>>>> dev是指dev分支上修改的内容。我们确定到底保留哪个分支内容,还是两个分支内容都保留呢,然后再去修改文件冲突内容 - 修改完冲突文件,重新提交,done
12. 撤销与回退
我们想将某个修改后的文件撤销到上一个版本,或者想撤销某次多余的提交,都要用到git的撤销和回退操作:
git checkout -- test.txt # 撤销test.txt的修改
cat test.txt # 查看内容
1)代码git add到暂存区,并未commit提交,可以酱紫回退:
git reset HEAD file # 取消暂存
git checkout file #撤销修改
2)代码已经git commit了,但是还没有push,可以回退:
git log # 获取到想要回退的commit_id
git reset --hard commit_id # 回到过去的commit_id
3)代码已经push到远程仓库:
git log
git reset --hard commit_id
git push origin HEAD --force
13. 标签tag
在软件发布时创建标签,是被推荐的。可以执行如下命令以创建一个叫做 1.0.0 的标签:
git tag [tag] # 新建一个tag在当前commit
git tag [tag] [commit] # 新建一个tag在指定commit
git tag -d [tag] # 删除本地tag
git push origin [tag] # 推送tag到远程
git show [tag] # 查看tag
三、Git小技巧
四、Git家族
五、 GitLab/Github配置SSH key
Git使用指南(高频命令详解)
标签:这一 git reset 执行 lob 信息 pull 配置管理 部分 撤销
原文地址:https://www.cnblogs.com/xhaoai/p/14200472.html