Git使用指南(高频命令详解)

标签:这一   git reset   执行   lob   信息   pull   配置管理   部分   撤销   

一、Git是什么

Git是免费、开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理

fig-git

  • 版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一
  • 以毕业论文为例,版本控制就是这些论文变更的管理,学会了它就可以避免今后大家写论文出现以下这种情况:

image-20201227164226805

  • 分布式版本控制系统,就是远程仓库同步所有版本信息到本地的每个用户。用户在本地就可以查看所有的历史版本信息。当别的用户更改过项目时,用户可以远程更新一下,就能看到最新版的项目。

1.1 git四大工作区

  • Workspace:你电脑本地看到的文件和目录,在Git的版本控制下,构成了工作区
  • Index/Stage暂存区,一般存放在 .git目录下,即.git/index,它又叫待提交更新区,用于临时存放你未提交的改动。比如,你执行git add,这些改动就添加到这个区域啦。
  • Repository本地仓库,你执行git clone 地址,就是把远程仓库克隆到本地仓库。它是一个存放在本地的版本库,其中HEAD指向最新放入仓库的版本。当你执行git commit,文件改动就到本地仓库来了~
  • Remote远程仓库,就是类似github,码云等网站所提供的仓库,可以理解为远程数据交换的仓库~

1.2 git工作流程

fig-git工作原理

  • 从远程仓库拉取文件代码回来;
  • 在工作目录,增删改查文件;
  • 把改动的文件放入暂存区;
  • 将暂存区的文件提交本地仓库;
  • 将本地仓库的文件推送到远程仓库;

二、Git常用命令

fig-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. 解决冲突

  1. 查看冲突文件内容
  2. 确定冲突内容保留哪些部分,修改文件
    Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,<<<<<<<HEAD是指主分支修改的内容,>>>>>>> dev是指dev分支上修改的内容。我们确定到底保留哪个分支内容,还是两个分支内容都保留呢,然后再去修改文件冲突内容
  3. 修改完冲突文件,重新提交,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

版权声明:完美者 发表于 2021-01-01 12:36:36。
转载请注明:Git使用指南(高频命令详解) | 完美导航

暂无评论

暂无评论...