Git初级

Git

定义

开源 分布式 版本控制工具(SVN为集中式)

分为: 本地仓库远程仓库

功能

  • 代码备份
  • 版本控制
  • 协同开发
  • 代码追溯

场景

团队协同开发项目

原理

工作目录working tree -->暂存区 index --> 本地仓库repository -->暂存区–> 远程仓库remote repository

使用

Git GUI 图形化

工具
	TortoiseGit
	IDEA
	SmartGit
	SourceTree

Git BUSH 命令行

基本命令
git 
	查看git信息
	
git init 
	初始化 创建repository
	
git add <file>
	将文件的修改提交到暂存区 index
	
git commit -m "描述信息"  
	将暂存区的文件提交到本地仓库的master分支(系统自动创建的第一个分支) 
	如果不add到缓存区,是无法提交的
	
git status 
	查看文件当前状态, 是否add 或 commit
		
git log --pretty=oneline 
	查看提交日志
	
git reset --hard HEAD^ 
	回到上个版本 HEAD表示当前版本,每一个^表示版本 HEAD~100 上100个版本 HEAD~3
git reset --hard 版本号
	回到指定版本
	
git reflog 
	所有分支的操作记录,包括被删除的commit记录
	记录每一条命令,可以查看到版本号
	
git diff HEAD -- <file> 
	查看当前工作区文件与仓库中最新文件的差异
	
git checkout -- <file>
	丢弃工作区的修改(用仓库中的文件替换工作区文件)
	一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和仓库一模一样的状态;
	一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
	总之,就是让这个文件回到最近一次 commit 或 add 时的状态
	
git reset HEAD <file>
	撤销暂存区的修改
删除
1. git rm <file> 
2. git commit -m "描述信息"
		删除文件
远程仓库
  • 用户名密码连接(使用Https协议地址)
    • 每次和远程通信都需要输入用户名和密码
  • SSH免密连接(使用SSH协议地址)
    • 一次性在双方服务器上配置公私密钥之后双方的通信分别使用公钥或私钥加密传输, 保障数据的安全性, 无须每次密码的校验
#设置本地默认远程仓库信息
$ git config --global user.name "username"
$ git config --global user.email "email"

#查看是否已有公钥
$ cd ~/.sh

#没有则创建私钥 非对称加密算法rsa
$ ssh-keygen -t rsa -C "eamil"
#私钥id_rsa 公钥id_rsa.pub

#复制到id_rsa.pub中内容到平台对应设置中
GitHub
git remote add 自定义远程别名 git@github.com:用户名/仓库名.git
(本地仓库名需和远程一致)
	本地关联到远程
	
git push -u 远程别名 分支名 
	第一次提交,与远程仓库关联

git push [远程别名 分支名]
	提交到远程仓库

git push --set-upstream origin 分支名
	添加远程分支
	
git clone 地址
	克隆远程仓库到本地, 下载所有文件 (全量)	
	
git pull 远程名 分支名
	(增量)更新, 从远程抓取分支,如果有冲突,要先处理冲突。	
码云 提供免费私有库
$ ssh -T git@gitee.com #查看添加SSH是否成功

#其他操作与github相同
分支

创建新的分支,相当于在主分支master上新建了新的分支,并将HEAD指向新的分支,以后的操作就在该分支上进行。

合并时就把master指向当前分支的最新版本,同时HEAD指向master。

git checkout -b <name> 
	创建并切换到分支 <name>
	相当于 git branch <name>git checkout <name> 两条命令

git branch 
	查看当前分支

git checkout <name>
	切换回master分支
	
git merge --no-ff -m "描述信息" <name>
	合并分支
	
git branch -d <name>
	删除分支 
git branch -D <name>
	删除一个没有合并过的分支
	
git log --graph
	查看分支合并图

# 修改bug
git stash 
	临时存储当前分支的工作情况
		git stash list 
			查看所有的stash
		git stash apply stash名
    		恢复指定的stash
		git stash drop 
			删除stash
		git stash pop 
			恢复并删除
		git cherry-pick 提交名
			复制特定的提交到当前分支
		
# 新版本(实测1.8.3不支持)2.27.0支持
	git switch -c <name> 
		创建并切换
	git switch <name>
		切换
多人协作开发
git remote -v
	查看远程库信息

本地新建的分支如果不推送到远程,对其他人就是不可见的

git push 远程别名 branch-name
	从本地推送分支, 如果推送失败,先用git pull抓取远程的新提交

git checkout -b branch-name origin/branch-name
    在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致;

git branch --set-upstream branch-name origin/branch-name
	建立本地分支和远程分支的关联
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值