Git-从0基础学Git

Git的使用

什么是Git

Git是一个版本控制的工具,版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

使用Git的好处

  1. 代码可以进行版本管理,如果代码写错了,可以退回到上次正确的版本
  2. 分布式版本控制系统.可以让代码有多个分支,比如在不同操作系统上运行
  3. 监测版本的变化,每次修改的地方都可以被找到,随时知道自己添加了哪些文件,删除了哪些文件,修改了哪些地方
  4. 代码备份,随时远程备份自己的代码,本地代码丢失可以找回
  5. 多人合作,集中管理

git的使用

下载Git

第一步,要下载git工具,git的原型也是一个只有控制台界面的程序,可以额外下载有图形界面的工具

默认下载的自带一个图形界面,和一个仿Linux的终端程序

创建自己的一个git项目

3.1 git的环境配置

**全局设置:**首先要设置一个用户名和邮箱,才能使用,格式如下

git config --global user.name "用户名"
git config --global user.email "邮箱账号@qq.com"

3.2获取Git 仓库

两种方式

在本地初始化一个仓库
git init			#初始话git仓库
从远程克隆 
git clone [远程域名]
git clone https://gitee.com/zhuimengmy/myRepo1.git

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

版本库:前面看到的.git隐藏文件夹就是版本库,版本库存储量很多配置信息,日志信息和文件版本信息等。

工作目录(工作区):包含.git文件的目录就是工作目录,主要用于存放开发的代码

暂存区:.git文件周明华有很多文件,其中一个index文件就是暂存区,也叫作stage,暂存区是一个临时保存修改文件的地方。

3.4 Git工作目录下文件的两种状态

1 untracked未跟踪(未被纳入版本控制)

2 tracked已跟踪(被纳入版本控制)

​ <1>unmodified 未修改状态

​ <2>Modified 已修改状态

​ <3>Staged 已暂存状态

3.5 本地仓库操作

查看文件的状态

查看文件的状态
git status  # 检查状态

# 查看跟踪文件的的修改
git diff
git diff HEAD -- [file]		#查看上次修改

也可以使用git status -s

git add 将未跟踪的文件加入暂存区

git add [file]	#可以连续添加跟踪文件上

git reset 将暂存区的文件取消暂存

git reset [file]   #撤销

添加代码到版本库,已经将该内存进行保存了

git commit -m [提交的内容注释] #将暂存区的文件修改提交到本地仓库

移除文件

git rm [file] 
	--cached [file]  #不删除物理文件,只将add进缓存的文件删除。
	-r #有目录的话加此参数
	-f #会删除物理文件

git log 查看日志文件

#上传最近的记录 从最近到最远的提交日志,我们可以看到3次提
git log
	 --pretty=oneline		#减少输出信息

#命令历史,以便确定要回到未来的哪个版本
git reflog	 

# 回到上一次版本
git reset				 
	--soft  				#不会修改文件,只会改变指针
	--mixed  				#改变暂存区,不改变工作区
		HEAD				#暂存区的地方撤销	
	--hard commit_id		#回退到指定的版本,内容也会全部更变
	
	
#HEAD表示当前版本
#上一个版本就是HEAD^
#上上一个版本就是HEAD^^
#100个版本可以写成HEAD~100
#修改分支
git checkout
	-- [file] 撤销工作区的修改	

Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改

3.6远程仓库操作

常见的远程仓库

  • 查看远程仓库

    添加远程仓库

    从远程仓库克隆

    移除无效的远程仓库

    从远程仓库中抓取与拉取

    推送到远程仓库

    查看原远程仓库

    如果想查看已经配置的远程仓库服务器,可以运行git remote命令,它会列出指定的一个远程服务器的简写。

    如果已经克隆了远程仓库,那么至少应该能看到origin,这是Git克隆的仓库服务器的默认名字

    添加远程仓库

    git remote add <shortname> <url> #添加一个新的远程仓库
    
    

    从远程仓库克隆

    从远程克隆 
    git clone [远程域名]
    git clone https://gitee.com/zhuimengmy/myRepo1.git
    
    

    移除无效的远程仓库

    git remote rm     #移除一个远程仓库
    ### 注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库
    
    

    从远程仓库中抓取与拉取

    git feth   #从远程仓库获取最新版本到本地仓库,不会自动merge(合并)
    git pull  #将远程仓库上的更新的内容,推送到本地,然后同步
    

推送到远程仓库

git push [remote-name] [branch-name]  #推送到远程仓库

3.7 git分支管理

​ 查看分支

​ 创建分支

​ 切换分支

​ 推送至远程分支

​ 合并分支

​ 删除分支

创建分支

git branch [分支名称]

-d 删除分支

## 查看所有分支和当前所在的分支
git branch

## 创建一个新分支  -b 表示创建完成并自动切换
git branch test

## 删除分支
git branch -d test

切换分支

git checkout [分支名称]

​ -b [branch] 创建并切换

## 切换分支
git checkout test

## 创建分支并切换
git checkout -b test2

合并分支

合并分支应该先切换到主目录下,再合并新建的分支

git merge [branch] 指定分支到当前分支
–abort 撤销合并

## 合并分支命令
git merge test

## 撤销合并分支
git merge --abort

switch 切换分支 替换checkout

设置git push和pull的默认远程分支

 git branch --set-upstream-to=origin/master master

git 日志

Git 删除具体某个提交commit的方法

  1. git log获取commit信息
  2. git rebase -i (commit-id)
    commit-id 为要删除的commit的下一个commit号
    3.编辑文件,将要删除的commit之前的单词改为drop
    4.保存文件退出大功告成
    5.git log查看

删除已经commit的大文件

git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch *.gz' --prune-empty --tag-name-filter cat -- --all

猜你喜欢

转载自blog.csdn.net/qq_45893999/article/details/106188857
今日推荐