git常用命令

什么是git
git是一个开源的分布式版本控制系统(Distributed Version Control System,简称DVCS),是目前世界上最先进,最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。分为两种仓库 :本地仓库和远程仓库。

Git 的特点
项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性!Git 之所以快速和高效,主要依赖于① 直接记录快照,而非差异比较;② 近乎所有操作都是本地执行; 的特性

本地仓库
是在开发人员自己电脑上的Git仓库

远程仓库
是在远程服务器上的Git仓库

在这里插入图片描述

基础操作命令
Clone:克隆,就是将远程仓库复制到本地;
Push:推送,就是将本地仓库代码上传到远程仓库;
Pull:拉取,就是将远程仓库代码下载到本地仓库;

git工作流程
1.从远程仓库中克隆代码到本地仓库;
2.从本地仓库中checkout代码,然后进行代码修改;
3.在提交前先将代码提交到暂存区;
4.提交到本地仓库。本地仓库中保存修改的各个历史版本;
5.修改完成之后,需要和团队成员共享代码时,将代码push到远程仓库;
在这里插入图片描述

安装并配置 Git
根据自己的操作系统,选择下载对应的 Git 安装包:

网址:http://www.git-scm.com.cn/

Git 的全局配置文件
1.设置自己的用户名和邮件地址
通过 Git 对项目进行版本管理的时,Git 需要使用这些基本信息,来记录是谁对项目进行了操作

git config --global user.name "itheima"
git config --global user.email "itheima@itcast.cn"

注意:如果使用了 --global 选项,那么该命令只需要运行一次,即可永久生效

检查配置信息
除了使用记事本查看全局的配置信息之外,还可以运行如下的终端命令,快速的查看 Git 的全局配置信息:

# 查看所有的全局配置项
git config --list --global
# 查看指定的全局配置项
git config user.name
git config user.email

获取帮助信息

可以使用 git help <verb> 命令,无需联网即可在浏览器中打开帮助手册
不想查看完整的手册,那么可以用 -h 选项获得更简明的“help”输出

# 打开 git config 命令的帮助手册
git help config
# 想要获取 git config 命令的快速参考
git config -h

获取 Git 仓库的两种方式
① 将尚未进行版本控制的本地目录转换Git 仓库

② 从其它服务器克隆一个已存在的 Git 仓库

以上两种方式都能够在自己的电脑上得到一个可用的 Git 仓库

// 执行 git init 命令将当前的目录转化为 Git 仓库
git init

从远程仓库克隆

git clone 远程Git仓库地址

工作目录、暂存区以及版本库概念

版本库:前面看到的.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等;
工作目录(工作区):包含.git文件夹的目录就是工作目录,主要用于存放开发的代码。
暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方。
在这里插入图片描述
Git工作目录下的文件状态
untracked未跟踪(未被纳入版本控制)
tracked已跟踪(被纳入版本控制)
Unmodified未修改状态
Modifed已修改状态
Staged已暂存状态

本地仓库操作

git status 查看文件状态
git status -s是输入的信息更加的简介
git add将未跟踪的文件加入暂存区
git resst 将暂存区的文件取消暂存
git commit 将暂存区的文件修改提交到本地仓库
git rm删除文件
git log查看日志记录

将文件添加到忽略列表:

.gitignore 配置文件用于配置不需要加入到版本管理中的文件,用来管理一些本地的临时文件。
1.新建一个.gitignore文件,文件名:.gitignore
(也可以在git bash中 采用vim .gitignore,然后编辑好之后:wq!保存)
2.这个文件默认放在项目的根目录,为这个Git项目配置忽略列表,同时也可以通过命令配置本地全局的忽略列表

$git config –global core.excludesfile ~/.gitignore

3.配置文件示例

# 忽略 .a 文件
*.a

# 但否定忽略 lib.a, 尽管已经在前面忽略了 .a 文件
!lib.a

# 仅在当前目录下忽略 TODO 文件, 但不包括子目录下的 subdir/TODO
/TODO

# 忽略 build/ 文件夹下的所有文件,包括子目录下的subdir/build文件夹中的文件
build/

# 忽略 doc/notes.txt, 不包括 doc/server/arch.txt
doc/*.txt

# 忽略所有的 .pdf 文件 在 doc/ directory 下的
doc/**/*.pdf

远程仓库操作

1.查看远程仓库
如果想查看已经配置的远程仓库服务器,可以运行git remote命令
如果已经克隆了远程仓库,那么应该至少能看到origin,这是git克隆的仓库服务器的默认名字

2.添加远程仓库
运行git remote add 添加一个新的远程git仓库

3.从远程仓库克隆
克隆仓库的命令是 git clone [url]
当执行git clone命令的时候,默认配置下远程git仓库中的每一个文件的每一个版本都将被拉取下来

4.移除无效的远程仓库
如果因为一些原因想要移除一个远程仓库,可以使用git remote em
注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库

5.从远程仓库中抓取与拉取
git fetch是从远程仓库获取最新版本到本地仓库,不会自动merge;
git pull是从远程仓库获取最新版本并merge到本地仓库;
git fetch是从远程仓库获取最新版本到本地仓库,不会自动merge;

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时在从远程仓库拉取文件的时候会报错(fatal:refusing to merge unrelated histories),解决此问题可以在git pull 命令后加入参数–allow-unrelated -histories

6.推送到远程仓库
当你想分享你的代码时,可以将其推送到远程仓库
命令形式
git push -u origin 分支名

切换到指定的版本

// 在一行上展示所有的提交历史
git log --pretty = oneline
// 使用 git reset --hard 命令,根据指定的提交 ID 回退到指定版本
git reset--hard <CommitID>
// 在旧版本中使用 git reflog --pretty=oneline 命令,查看命令操作的历史
git reflog--pretty = oneline
// 再次根据最新的提交 ID, 跳转到最新的版本
git reset--hard <CommitID>

分支:
分支是专门用来开发新功能的分支,它是临时从 master 主分支上分叉出来的,当新功能开发且测试,完毕后,最终需要合并到 master 主分支上

查看分支列表:git branch (*表示当前所在分支)

创建分支:git branch 分支名 当创建完后,那么在master主分支上面就会分叉一个分支

切换分支:git checkout 分支名称

分支的快速创建和切换:git checkout -b 分支名称

合并分支:git merge 分支名(前提是要通过git branch master切换到主分支哦)

删除分支: git branch -d 分支名称

遇到冲突时的分支合并:
解决方法:
切换到master分支上,修改 index.html 里面的内容,进行提交;
切换到login分支上,修改 index.html 里面内容,进行提交;
切换到master分支上,进行merge合并,此时发生了冲突;
打开冲突的文件,然后进行修改;
修改完后,输入 git add .
输入 git commit -m 进行提交

// 假设:在把 reg 分支合并到 master 分支期间
git checkout master
git merge reg

// 打开包含冲突的文件,手动解决冲突之后,再执行如下命令
git add.
git commit -m "解决分支合并冲突的问题"
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值