git使用记录

git使用记录

1.下载git或gitlab上的项目,接下来查看分支,一般就在master分支下

git clone xxx.git

成功连上github之后,要把本地仓库传到github上去,要设置username和email

git config --global user.name "your name"  # github上的用户名
git config --global user.email "your_email@youremail.com"  # 邮箱

其他:
(1)查看配置信息

git config  --list

(2)遇到ssl问题

git config --global http.sslVerify false

(3)push后,遇到密码错误fatal: Authentication failed for,执行以下命令

git config --system --unset credential.helper

再次push时,会提示输入用户名,密码

注:clone后不需要init初始化操作和关联远程仓库

git init  # 初始化
git remote add origin https://github.com/xxx/memory.git  # 关联远程仓库

可参考命令

git clone git@github.com:bianpeijiang/design_mode.git //克隆版本库
cd design_mode/
vim README.md //新建一个readme文件
git add .  //把当前目录的新建文件,添加版本库跟踪
git commit -m "init"  //提交当前分枝的版本库跟踪未提交内容,并设置备注信息为"init"
git push //推送提交内容到远程,这时会报错,提示当前分枝为master,远程为main
git branch -M main  //修改当前分枝名称为main
git push -u origin main //推送当前分枝到远程main分枝

2.查看分支

git branch # 查看本地已存在的分支,并且在当前分支的前面加 ”*“号标记
在这里插入图片描述

3.查看状态

git status

4.查看远程的分支

git branch -r
在这里插入图片描述
origin/HEAD就像一个指针,表示默认分支

4.创建本地develop分支,和远程的origin/develop分支关联起来

git checkout -b develop origin/develop # 即创建本地新分支develop,然后切换到新分支develop
接着在develop当前分支下进行操作,add,commit后,用git push origin develop,意思是推送当前的develop分支到远程origin地址的develop分支上

5.创建,切换分支

git branch branchName 创建新分支
git checkout branchName 切换分支
或者
git checkout -b branchName 创建然后切换分支

6.放弃对所有工作区的修改

git checkout .

git branch -d branchname 删除本地分支

7.git merge使用介绍

现在有两个分支:feature/guangxi_master_declareinit;guangxi_dev
目标:将guangxi_dev上最新的代码合并到feature/guangxi_master_declareinit
结果:修改feature/guangxi_master_declareinit,包含了guangxi_dev上最新的代码,guangxi_dev不变
(1)切换到guangxi_dev分支,拉取最新代码

git checkout guangxi_dev
git pull

(2)切换到feature/guangxi_master_declareinit

git checkout feature/guangxi_master_declareinit

(3)将guangxi_dev合并到feature/guangxi_master_declareinit

git merge guagnxi_dev

在这里插入图片描述
不同分支的内容用<<<<<<<,========,>>>>>>>标记
======== 前半部分为当前分支的代码,后半部分为被合并的分支或者远程分支代码,即guangxi_dev
根据需要选择需要保留的代码

(4)处理冲突后git add file,表示冲突已解决,不会自动检测是否还有冲突,主要自己判断是否真的解决了所有冲突,然后就可以git push了
在这里插入图片描述
(5)如果想要在git push之前想要放弃这次合并,使用命令

git merge --abort

该命令仅仅在合并后导致冲突时才使用,将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时如果存在未commit的文件,在某些情况下将无法重现合并前的状态,特别是这些未commit的文件在合并的过程中将会被修改时,比如未commit的文件在合并的过程中将会被修改时

8.git rebase使用介绍

使用场景:
提交点B处为主开发分支guangxi_master,从提交点B处拉出一个分支feature/guangxi_master,并在fearure/guangxi_master上做一些新需求的开发,这样就不会影响到主分支guangxi_master,如果这时B处的guangxi_master上有人做了修改,产生了新的提交C,这时,如果想把feature/guangxi_master上新增的代码合并到目标分支guangxi_master最新的改动,也就是提交C时,就会产生合并冲突

在这里插入图片描述
解决办法如下:
(1)git checkout guangxi_master # 切换到目标分支guangxi_master
(2)git pull # 拉取目标分支上最新的改动,也就是提交点C
(3)git checkout feature/guangxi_master # 切换回feature分支
(4)git rebase guangxi_master
在feature分支上执行git rebase master,git会从master和featuer的共同祖先B上,提取feature分支(待变基分支)上的修改,即提交点D,然后将feature分支(待变基分支)指向guangxi_master(基分支)的最新提交C,最后将在D处提取的修改连接到到基分支的最新提交C的后面,形成E,这时,
feature/guangxi_master分支上既包含了guangxi_master上别人最新的修改,也包含了自己在feature/guangxi_master上的修改
在这里插入图片描述
(5)上一步执行的结果可能会出现有冲突的文件
在这里插入图片描述
打开有冲突的文件,冲突的地方已经用HEAD >>>>>> 标注出来,手动修改即可
改完之后,需要使用命令
git add guangxi/sn.ini(出现冲突的文件)
git rebase --continue (继续rebase)
输入message,点击esc ,wq保存
在这里插入图片描述
直到将所有冲突的位置修改完
这个过程中,用git status查看状态
在这里插入图片描述

需要注意的是rebase会更改历史提交时间,可能丢失上下文,merge更常用

9.强制本地覆盖线上

git push origin feature/guangxi_master -f

10.一个分支强制覆盖另一个分支

(1)切换到要覆盖的分支:guangxi_dev
git checkout guangxi_dev
(2)将guangxi_master分支的内容覆盖到guangxi_dev分支
git reset --hard origin/guanxi_master
在这里插入图片描述
(3) 覆盖成功后,本地分支guangxi_dev强行推到远程分支origin guangxi_dev
git push -f
在这里插入图片描述

11.取消git merge,回退到之前的版本

(1)查看历史版本
git reflog
在这里插入图片描述
查看特定分支的日志
git reflog show guangxi_dev
在这里插入图片描述

(2)本地代码回退到指定版本
git reset --hard 版本号
在这里插入图片描述
(3)本地代码强制覆盖git服务器代码
git push -f
在这里插入图片描述

git push origin master --force

(3)远程分支强制覆盖本地分支

git reset --hard origin/master

12.查看有哪些文件不同

 git diff guangxi_dev feature/guangxi_dev_financial_110 --stat

在这里插入图片描述

13. .gitignore忽略文件失败

有可能就是暂存区包括了.gitignore要忽略的文件,代表忽略的文件被纳入版本控制,.gitignore不能生效

(1)查看暂存区文件

git ls-files
在这里插入图片描述

(2)删除暂存区文件,变成untracked状态

删除某个

在这里插入图片描述

删除所有暂存区文件
git rm -r --cached .
在这里插入图片描述

(3)查看暂存区文件

git ls-files -s ..gitignore # 查看暂存区gitignore对应的Blob对象

在这里插入图片描述
git cat-file -p 6aa18b
在这里插入图片描述

(4)删除暂存区文件后,重新建立git索引

git add . # 所有文件建立索引

14.执行commit后,撤销此次commit

git reset --soft HEAD^

撤回commit操作,之前写的代码仍然保留

HEAD^的意思是上一个版本,也可以写成HEAD~1

如果你进行了2次commit,想都撤回,可以使用HEAD~2

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值