Git日常使用

一、配置Git
配置账户名:git config --global user.name "name"
配置账户邮箱:git config --global user.email "email"
查看设置信息:git config --list
二、创建Git仓库和提交文件

直接在项目目录下右击—>Git bash Here,打开Git命令行界面

git init  			 //创建一个Git仓库
git add FileName     //将工作区的(workStation)的FileName文件添加到Git暂存区(stage/index)
git add .gitignore   //将.gitignore文件添加到暂存区
git add .	         //将当前Git bash Here路径下工作区的(workStation)全部文件都添加到Git暂存区

git status	         //查询工作区的文件状态
#把暂存区中的文件提交到本地仓库中并添加描述信息
git commit -m "提交"	//将暂存区的文件提交到Git仓库
git log 	         //查看提交到Git仓库的记录
#显示log,但是不显示很多凌乱的信息
$ git log   --pretty --oneline     
三、删除与恢复操作
#删除工作区的fileName文件,如果commit则会继续删除暂存区和仓库的fileName文件
$ rm fileName 

# 删除工作区和暂存区的fileName文件,如果commit则会删除仓库文件
$ git rm fileName

# 删除工作区和暂存区的fileName文件,如果commit则会删除仓库文件
$ git rm -r fileName

#工作区和暂存区的同一个fileName文件存在不同内容,强制删除工作区和暂存区的fileName文件
#如果commit则会删除仓库文件
$ git rm -f fileName

# 只删除暂存区的fileName文件
$ git rm --cached fileName

#撤销更改在工作空间但不在暂存区的文件
git restore file

#将暂存区的文件从暂存区撤出(从暂存区撤出file文件,不更改工作区文件)
git restore --staged file  

#

#处理大文件:
git rm --cached giant_file #仅删除暂存区的giant_file文件
git commit --amend -CHEAD  #修改上次提交

# 修改上次提交的描述信息
git commit --amend //把新的内容添加到之前的commit里面,即用新的提交取代了原始提交,但不改变提交描述
git commit --amend -m "提交描述" //用新的提交取代了原始的提交,且改变了描述
四、Git远程库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YEJPtzBC-1639391863846)(C:\Users\Zz\AppData\Roaming\Typora\typora-user-images\image-20210427201903779.png)]

#查看自己添加的远程库
$ git remote  #只能看到自己设置的名字
$ git remote -v #能看到别名和远程库地址

#添加新的远程库
$ git remote add <alias别名> <url远程库地址>

#远程地址重新命名
$ git remote rename <old> <new>

#删除指定到远程地址的本地别名
$ git remote remove <name>

#推送本地Git仓库master分支下文件到本地库
$ git push <alias> <branch> # 如 git push name master

#将本地的branch分支推送到alias主机,同时指定branch为默认主机
#下次如果还要推送到这个主机,直接 git push即可
$ git push -u <alias> <branch>

#上面两种是matching方式
$ git push #simple方式推送,需要用-u指定为默认主机

#将远程库拉取到本地工作区(会和工作区的文件合并)
$ git pull <alias> <branch>	#本地工作文件将会更新,如果有同名文件,将会强制更新本地库文件

#强制拉取(本地库和远程库有不同的文件时)
$ git pull <alias> <branch>	--allow-unrelated-histories #把远程库和本地库同步

#将远程库文件抓取到暂存区,此时本地库和工作区没有合并
$ git fetch <alias> <branch> 
# 将缓存区分支文件和本地库文件进行合并(pull= fetch+merge)
$ git merge <alias> <branch> 

#将远程库克隆到本地
git clone <url>

五、版本回退
# 查看Git的历史提交记录
$ git log

# 查看Git所有的历史提交记录
$ git reflog

#版本回退(通过指针HEAD)
$ git reset --hard 版本号 #回退到版本号对应的版本
$ git reset --hard HEAD^ #回退一个版本
$ git reset --hard HEAD^^ #回退两个版本

#命令参数有 soft, mixed, hard 三种类型:
#(1) 参数 soft 表示本地Git仓库移动HEAD指针。(软回退)
#(2) 参数 mixed 表示本地Git仓库移动HEAD指针,重置暂存区。(混合回退)
#(3) 参数 hard 表示表示本地Git仓库移动HEAD指针,重置暂存区,重置工作区。(硬回退)

#远程库回退(先将本地库回滚,再强制推送到远程库)

$ git reset --hard 版本号 #回退到版本号对应的版本
$ git push origin master -f

六、文件查看

#列出工作区的所有文件
$ ls

#列出Git本地库的所有文件(包括仅暂存但尚未提交的文件)
$ git ls-files 

#列出git repo正在跟踪的所有已提交文件
$ git ls-tree --full-tree -r --name-only HEAD


七、合并远程两个远程仓库(将A仓库合并到B仓库)

############前提#######################################
A仓库远程库已有,无本地库
B仓库远程库已有,有本地库(没有本地库可以建好后把远程库同步过来)
|远程仓库名 | 本地仓库分支 |
| repo_A  ||
| repo_B  |   master   |

$ git branch				#列出所有分支
$ git branch newBranch 		#创建新的分支
$ git branch -d Branch 		#删除Branch分支
$ git checkout master 		#切换到master分支
$ git checkout -b newBranch #创建并切换到newBranch
$ git merge temp 			#合并temp分支到当前分支

#######################################################
#1、将远程库A加入到本地仓库B,此时本地仓库对应远程库A与B
$ git remote add repo_A http://...(远程库地址) 

#2、从远程库A抓取数据到本地仓库
$ git fetch repo_A   #repo_A是远程仓库A的别名

#3、创建本地仓库新分支Temp并关联到远程仓库A/master分支
$ git checkout -b Temp repo_A/master  #Temp:新分支repo_A/master:远程库A的master分支

#4、切换会本地分支master
$ git checkout master

#5、将Temp合并到master分支
$ git merge Temp	#若提示fatal: refusing to merge unrelated histories 则进行第6步

#6、错误处理
$ git merge Temp --allow-unrelated-historie #会有提示

#	可以直接下面3,4步退出黑框。如果要输入解释的话就需要1-4步:
#	1.按键盘字母 i 进入insert模式
#	2.修改最上面那行黄色合并信息,可以不修改
#	3.按键盘左上角"Esc"
#	4.输入":wq",按回车键即可



#7、解决冲突
git add .
git commit -m "合并"
git push online_repo1 online_a:online //上传到远程库
git checkout master
git merge Temp
git branch -d Temp #删除合并后的临时分支Temp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值