git笔记

git笔记

最新请跳转 https://gitee.com/pupudalishi/git-notes

1. 下载安装git

Git - 安装 Git (git-scm.com)

1.1 Linux下git安装
  • CentOS或者Fedora
sudo yum install git
  • ubuntu或者Debian
sudo apt-get install git
1.2 Windows下git安装
  • git官网下载

Git (git-scm.com)

1.3 Mac下git安装
  • 安装Xcode时勾选安装
1.4 从源码安装
  • 依赖多,放弃

1.2 查看安装是否成功

打开cmd,直接输入

git

或者查看git的版本,安装成功就会显示对应的版本

git version

1.3 git基本配置以及git的本地架构设计认识

1.3.1 本地架构图

在这里插入图片描述
在这里插入图片描述

  • 版本库:工作区中有一个隐藏目录.git,这个目录不属于工作区,而是git的版本库,是git管理的所有内容

  • 暂存区(git术语为索引):版本库中包含一个临时区域,保存下一步要提交的文件,比如我们后面用的add操作就是把我们提交的文件存到暂存区

  • 分支:版本库中包含若干分支,提交的文件存储在分支中,比如我们存在暂存区的文件通过commit操作就会存入到对应的分支

Git 有三种状态,你的文件可能处于其中之一: 已修改(modified)已暂存(staged)已提交(committed)

  • 已修改:表示修改了文件,但还没保存到数据库中。(开发过程中修改了内容的文件)
  • 已暂存:表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。(add 添加的修改,用于提交)
  • 已提交:表示数据已经安全地保存在本地数据库中。(commit 之后的分支上的一个稳定版本)
1.3.2 远程仓库工作模式

代码可以推送到远程仓库,同时方便多人协同开发

Centralized Version Control Systems,简称 CVCS

在这里插入图片描述
在这里插入图片描述

1.4 git常用命令

安装好git之后,找到你自己的工程/项目文件夹,

windows:鼠标右键就会有 git bash here

linux:则鼠标右键 在此处打开终端

mac:则需要先打开终端,再cd到你的工程/项目文件夹

习惯终端的的话,windows和linux都可以用cd跳转

git config 第一件事
  • 介绍

    .git/config文件有很多配置。。。

该工具来帮助设置控制 Git 外观和行为的配置变量。

这些变量会存在下面三个位置,每一个级别会覆盖上一级别的配置,所以 .git/config 的配置变量会覆盖 /etc/gitconfig 中的配置变量。

  1. /etc/gitconfig 文件: 包含系统上每一个用户及他们仓库的通用配置。 如果在执行 git config 时带上 --system 选项,那么它就会读写该文件中的配置变量。 (由于它是系统配置文件,因此你需要管理员或超级用户权限来修改它。)
  2. ~/.gitconfig~/.config/git/config 文件:只针对当前用户。 你可以传递 --global 选项让 Git 读写此文件,这会对你系统上 所有 的仓库生效。
  3. 当前使用仓库的 Git 目录中的 config 文件(即 .git/config):针对该仓库。 你可以传递 --local 选项让 Git 强制读写此文件,虽然默认情况下用的就是它。 (当然,你需要进入某个 Git 仓库中才能让该选项生效。)

在 Windows 系统中,Git 会查找 $HOME 目录下(一般情况下是 C:\Users\$USER )的 .gitconfig 文件。(在其中改过一次git gui的显示中文UTF-8的编码,虽然改完还是繁体字,但是能够读懂了)

  • 配置用户信息(第一件事)

    安装完 Git 之后,要做的第一件事就是设置你的用户名和邮件地址。 这一点很重要,因为每一个 Git 提交都会使用这些信息,它们会写入到你的每一次提交中,不可更改:

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

  • 配置文本编辑器

    如果未配置,Git 会使用操作系统默认的文本编辑器。

$ git config --global core.editor "'C:/Program Files/Notepad++/notepad++.exe' -multiInst -notabbar -nosession -noPlugin"
  • 检查配置信息
$ git config --list
git help

不如

Git - git 文档 - Git 中文

Git - 书籍 - Git 中文

#git help或者git -h
git help | git -h

在这里插入图片描述

本地英文手册
#start a working area (see also: git help tutorial)
git help tutorial
#此时会打开本地gittutorial.html文件
#在文件中DESCRIPTION有蓝色链接The Git User’s Manual,点进去就是用户手册

1.5 常用工作流

常用流程
已有项目
###########################################
git clone [url] #clone已有代码
#修改代码
git status 	#查看工作区文件修改情况
##  1如果所有修改都符合需要

git add [file name] 	#添加指定修改文件到暂存区(已修改->已暂存)
git add . 				#添加所有修改到暂存区(已修改->已暂存)
git status	#检查添加到暂存区的内容
#	2如果添加完成

git commit -m "log of committing"	#提交你的代码到本地分支并填写提交日志(已暂存->已提交)
git commit --amend -m "log of committing"	#提交了还想把新的修改,修订到上一次提交,会替换上一次日志;如果是不同的功能,还是使用上面命令提交有多次日志(已暂存->已提交)
##  3成功提交

git fetch	#拉取远程所有分支代码到本地缓存的远程分支代码
git rebase	#合并本地当前分支和本地缓存的远程同名分支
##  4如果没有冲突

git push	#提交到远程同名分支
###########################################


##  1如果有不想要的修改
git checkout [file]	
#工程生成的临时文件可以在资源管理器手动删除
#一劳永逸的办法是添加.gitignore文件,在文件中对无需上传文件进行过滤
git status	#再次查看工作区文件修改情况

## 	2撤回暂存区的添加
git reset [file name] 	#将暂存区指定修改文件撤销(已修改<-已暂存)
git reset . 			#添加所有修改到暂存区(已修改<-已暂存)

##  3想要撤回提交
git reset HEAD~1	#撤回一次提交	(已暂存<-已提交)

##  4如果有冲突
#需要手动解决冲突的地方
#解决冲突最好以别人的版本为基础添加自己的修改
git add .	#将解决完冲突的代码修改添加到暂存区
#修改完最好编译一次
git rebase --continue	#继续合并
git push	#推送到远程
未有项目

git init -bare or git init

裸仓库和标准仓库的区别

项目迁移

网上的git迁移,clone --bare或clone --mirror再push --mirror(拉下来,再推上去);都不好用,远程初始化为普通库和裸库都不成功

结论还是把远程的裸库拷贝下来,复制粘贴到要迁移的地方(建个文件夹 p r o j e c t n a m e project name projectname.git)

项目在迁移后的链接更改

【Git】git 更换远程仓库地址三种方法总结分享_git 更换远程地址-优快云博客

第二项会断开本地的链接,但是不影响远程仓库配置,能连接成功没有问题

分支管理
#[remote repository]为远程仓库,可通过git remote进行查看,通常为origin

git branch [branch name]	#创建本地分支
git branch -a				#查看所有分支,本地分支和远程分支
git checkout [branch name]	#切换到分支
git push [remote repository] [branch name]	#将本地分支推送到远程同名分支,如果没有该远程分支,会创建一个新的远程分支
git push [remote repository] [branch name]:[remot branch name]	#将本地分支提交远程分支,如果没有该远程分支,会创建一个新的远程分支
git push [remote repository] --delete [remote branch name]	#删除远程分支
git branch -d [branch name]	#删除本地分支(要切换到其它分支才能删除

git push --set-upstream [remote repository] [branch name]	#推送本地分支到远程的同名分支,如果没有该远程分支,会创建一个新的远程分支,还会建立跟踪关系
git push --set-upstream [remote repository] [branch name]:[remote branch name]	#推送本地分支到远程的同名分支,如果没有该远程分支,会创建一个新的远程分支,还会建立跟踪关系
#建立跟踪关系后 git push 还是上传到默认同名仓库
已有项目的仓库创建
##远端
#创建你的git仓库文件夹,在文件夹中
git init --bare				#初始化裸仓库

##本地
#进入项目最上层目录
git init					#初始化本地仓库
git remote add origin [url]	#添加本地仓库的远程地址
#此时本地和远程还没有分支 需要添加内容并提交才能创建分支,并且提交不可撤销
git status
git add .
git commit -m "reposity init committing"	#会创建新的本地分支
git push	#失败 current branch has no upstream branch
git push --set-upstream origin master
##就成功了
回退版本
gitk	#查看要回退的目标版本号,并复制
#关闭gitk
git reset --hard [SHA1 ID]	#粘贴刚才复制的版本号
git push -f	#强制提交
标签

与v1.0 v2.0的提交日志是一样的吗?

1.6 其他

git checkout

放弃本地修改

$ git checkout .
$ git checkout -- filepathname 

git撤销、还原、放弃本地文件修改_git放弃本地修改-优快云博客

git init --bare

初始化一个裸仓库

参考

史上最全程序员第一次git使用全攻略_程序员刚入职git怎么用-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值