Git基础入门与常用操作

简介: Git基础入门与常用操作

【1】版本控制工具应该具备的功能

① 协同修改

多人并行不悖的修改服务器端的同一个文件。

② 数据备份

不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。

③ 版本管理

在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空

间,提高运行效率。这方面SVN 采用的是增量式管理的方式,而Git 采取了文

件系统快照的方式。

④ 权限控制

对团队中参与开发的人员进行权限控制。

对团队外开发者贡献的代码进行审核——Git 独有。

⑤ 历史记录

查看修改人、修改时间、修改内容、日志信息。

将本地文件恢复到某一个历史状态。

⑥ 分支管理

允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

⑦ 版本控制工具

集中式版本控制工具:CVS、SVN、VSS……


分布式版本控制工具:Git、Mercurial、Bazaar、Darcs……



【2】Git 介绍与安装

① 官网地址:https://git-scm.com/。



② Git的优势

  • 大部分操作在本地完成,不需要联网;
  • 完整性保证;
  • 尽可能添加数据而不是删除或修改数据;
  • 分支操作非常快捷流畅;
  • 与Linux 命令全面兼容。

③ Git的安装

  • 从官网下载对应自己系统的安装程序,以管理员身份运行,安装在英文无空格目录下;



  • next 下一步 安装选项



  • next Git安装目录的名字–默认即可



  • next 使用VIM编辑器作为默认编辑器–不需要更改


  • next 选择如何使用Git 命令行


完全不修改Path环境变量,仅在Git bash中使用Git。


  • next 选择Git使用的命令客户端程序–默认即可


  • next 选择Git本地到远程连接所使用的SSL/TLS库–默认即可


  • next 配置文档行末换行符转换风格–默认即可



  • next 选择Git Bash使用的终端仿真程序–默认即可



  • next 配置额外功能 --默认即可


  • install --安装过程


右键–Git Bash Here,即可打开Git的命令终端:


【3】本地库和远程库

① Git的结构


② Git和代码托管中心

代码托管中心的任务:维护远程库。

局域网环境下:GitLab 服务器。

外网环境下:GitHub、码云。


③ 团队内部协作下本地库和远程库示意图



④ 跨团队协作下本地库和远程库示意图



【4】Git仓库初始化并设置签名

① 本地库初始化

在磁盘Git工作空间内创建firstDemo,然后执行命令git init.

12746@Janus MINGW64 ~/Desktop
$ cd D:/GitInstall/workspace
12746@Janus MINGW64 /d/GitInstall/workspace
$ mkdir firstDemo
12746@Janus MINGW64 /d/GitInstall/workspace
$ ls
firstDemo/
12746@Janus MINGW64 /d/GitInstall/workspace
$ cd firstDemo/
12746@Janus MINGW64 /d/GitInstall/workspace/firstDemo
$ ls
12746@Janus MINGW64 /d/GitInstall/workspace/firstDemo
$ git init

如图初始化了空的Git仓库在D:/GitInstall/workspace/firstDemo/.git/路径下。


创建的.git目录是隐藏资源,使用如下命令查看:

12746@Janus MINGW64 /d/GitInstall/workspace/firstDemo (master)
$ ll -lA
total 4
drwxr-xr-x 1 12746 197121 0 7月  29 15:50 .git/

查看git目录,内容如下:

注意:.git 目录中存放的是本地库相关的子目录和文件,不要删除,也不要胡乱修改。


② 设置签名

形式:用户名:tom;Email 地址:goodMorning@atguigu.com。

作用:区分不同开发人员的身份。

辨析:这里设置的签名和登录远程库(代码托管中心)的账号、密码没有任何关

系。

命令

项目级别/仓库级别:仅在当前本地库范围有效

git config user.name tom_pro
git config user.email goodMorning_pro@qq.com
# 信息保存位置:./.git/config 文件

系统用户级别:登录当前操作系统的用户范围

git config --global user.name tom_glb
git config --global user.email goodMorning_pro@qq.com
# 信息保存位置:~/.gitconfig 文件

  • 级别优先级

就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名。如果只有系统用户级别的签名,就以系统用户级别的签名为准。二者都没有不允许


【5】常用命令操作

如果某个命令不知道或者想要更多功能,试试如下命令:

git --help;
git help <command>;
git help -a;
git help -g; 

① 状态查看

git status

查看工作区、暂存区状态。


② git add添加

git add [file name]

将工作区的“新建/修改”添加到暂存区,如下图创建一个good.txt并提交:



③ 提交文件

git commit  -m "commit message"  [file name]
# git rm --cached <file> 从暂存区移除指定文件
# git commit -a //提交所有文件

将暂存区的内容提交到本地库。


提交多个文件:

git commit -m "commit message" *


④ 文件覆盖与更新

如将good.txt进行了修改,查看状态:

此时直接添加将会将修改后的文件放到暂存区,如下图:


⑤ 查看历史记录

查看日志

git log

多屏显示控制方式:

空格向下翻页
b 向上翻页
q 退出

20180730124552534.jpg


日志单行显示:

git log --pretty=oneline


git log --oneline

显示指针:

git reflog

HEAD@{移动到当前版本需要多少步}。

查看提交详情

git log --stat

查看最新的commit

git show

查看指定commit hashID的所有修改

git show commitId

查看某次commit中具体某个文件的修改

git show commitId fileName

⑥ 前进/后退当前所在版本

基于索引值操作[推荐]

git reset --hard [局部索引值]
# git reset --hard a6ace91

使用^符号:只能后退

git reset --hard HEAD^
# 注:一个^表示后退一步,n 个表示后退n 步

  • 使用~符号:只能后退
git reset --hard HEAD~n
# 注:表示后退n 步

⑦ reset 命令的三个参数对比

  • –soft 参数

仅仅在本地库移动HEAD 指针。

  • –mixed 参数
    在本地库移动HEAD 指针并重置暂存区。
  • –hard 参数

在本地库移动HEAD 指针;重置暂存区;重置工作区。


⑧ 删除文件并找回

前提:删除前,文件存在时的状态提交到了本地库,如下图所示:


操作:git reset --hard [指针位置]

删除操作已经提交到本地库:指针位置指向历史记录,如下图:

删除操作尚未提交到本地库:指针位置使用HEAD。

如下图所示,此时删除操作还没有提交到本地库,只是到暂存区。

使用命令:

git reset --hard HEAD



⑨ diff比较文件差异

将工作区中的文件和暂存区进行比较:

git diff [文件名]


将工作区中的文件和本地库历史记录比较:

git diff [本地库中历史版本] [文件名]
# git diff HEAD  apple.txt
# git diff HEAD^  apple.txt

不带文件名比较多个文件:

git diff


⑩ 拉取远程代码并且覆盖本地更改

git fetch origin && git reset –hard origin/master


(11)列出远程和本地所有分支

git branch -a
git branch -r

(12)强制更新远程分支

git push origin master -f


(13)回滚一个 merge

git revert -m 1 xxxx

(14) 修改之前的提交记录或者很久前提交的记录

git rebase –interactive ID^


将需要修改的记录的 pick 改成 edit

执行更改

git commit –all –amend
git rebase –continue

(15)使用多个远程代码库,并且使用多个不同的 SSH Key

修改 ~/.ssh/config

Host bitbucket.org
HostName bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
User git
Host bitbucket.org-key2
HostName bitbucket.org
IdentityFile ~/.ssh/key2_id_rsa
User git

修改 .git/config

[remote “origin”]
url = git@bitbucket.org-key2:XXXX/yyyy.git
fetch = +refs/heads/*:refs/remotes/origin/*


(16)和外部团队协作需要的维护多个远程库,合并其他库的更新的过程

git remote rename origin upstream
git remote add origin URL_TO_GITHUB_REPO
git push origin master
git pull upstream master && git push origin master

(17)撤销 Git 的最后一次提交

git reset –soft HEAD~1


目录
相关文章
|
1月前
|
开发工具 git 索引
【git】入门
【git】入门
44 2
|
1月前
|
Shell Linux 开发工具
Git入门(windows系统)
Git入门(windows系统)
48 1
|
6天前
|
存储 Linux 开发工具
Git【入门】这一篇就够了
Git【入门】这一篇就够了
12 0
|
1月前
|
开发工具 git 开发者
Git入门:轻松掌握版本控制的艺术
【5月更文挑战第13天】Git是流行的版本控制系统,适合各种规模的项目。本文引导读者入门Git,学习版本控制艺术。内容涵盖Git简介、安装配置、基础操作(如初始化、添加文件、提交、查看状态和历史)、分支管理、协作开发(克隆、推送、拉取)及高级用法,如标签管理、子模块和版本比较。遵循最佳实践,如频繁提交、有意义的提交信息和合理分支管理,可提升开发效率。
|
1月前
|
数据可视化 开发工具 git
Git代码版本管理入门
Git代码版本管理入门
|
1月前
|
程序员 开发工具 git
好程序员Git入门到精通教程
本课程主要通过命令行和idea来介绍Git的安装、仓库创建、工作流、远程仓库、克隆仓库、标签管理和分支管理等Git的主要内容。 另外关于GitHub的使用介绍也有完整的说明和使用,接轨生产环境使用方式。
14 1
好程序员Git入门到精通教程
|
1月前
|
存储 持续交付 开发工具
Git操作入门
Git是一个的开源分布式版本控制系统,它已经被广泛应用于软件开发、文档管理、代码托管等领域,成为当今最流行的版本控制系统之一。Git通过高效地管理文件的变化,使得团队协作更加高效,错误率更低。本文将介绍Git的工作原理、基本命令和常见用法等内容。
26 0
Git操作入门
|
1月前
|
缓存 Java 开发工具
[Git]入门及其常用命令
创作本篇文章的初衷,是为了方便大家回顾git常用命令和使用细节,而不用查阅大量资源寻找。同时记录了一些特殊需求,如:pull 部分代码、删除日志。 如果文中阐述不全或不对的,多多交流。
41 0
[Git]入门及其常用命令
|
1月前
|
Linux 项目管理 开发工具
Git从入门到起飞(详细)
Git从入门到起飞(详细)
52 0