git 补充笔记

Git小白时候的补充:

  1. 远程仓库里面多生成了一个分支,删除。创建子分支的时候名字一定记得一致

    git push origin --delete xiaobai1

  2. 删除本地分支的时候,一定记得先切换到其他分支,才能删,因为删除不了自己当时所在的分支

    git branch -D <分支名字>

  3. remove可以缩写为rm ,删除远程仓库地址 (代码想同时托管到gitee,github俩个平台)

git remote remove 等同于 git remote rm

1.到公司第一次连接git操作
/*
	*1.git clone + 地址
	*2.git checkout -b 分支名    //创建本地分支并切换到该分支
	*3.git pull origin 分支名 --allow-unrelated-histories  拉取下拉的时候可以同步远程
	*4.为了确保同步成功没有,可以执行以下操作,谨慎处理
		*1.git add .     2.git commit -m 'v-1'      3.git push
		第一次git push时会有提示让设置连接远程,按提示操作,之后就不用再设了,只需git push 即可
		git push --set upstream 远程连接别名
      5. 实际工作master 一般不动,每次做项目为了方便做统一都用这一次的代码,创建和远程一样的仓库,是为了拉取和同步远程的代码,在创一个分支,是为了测试自己写的本地的内容,共三个分支,
      分支规划:
      master分支不动,
      dev分支,是公司做功能的分支,只用来合并xiaobai自己每天写的分支内容,和负责提交上传远程,
      xiaobai分支,是每天写的测试的代码,可以正常跑整个项目,
   
*/
2.下班前
/*
	*下班前提交代码:
		1.切换到要提交的分支(连接好远程的分支)
		2.git pull(拉取下来)
		3.git merge 分支名    // 自己要合并的分支
		4.解决冲突后才能提交 ********************
		5.git add .  
		6.git commit -m 'first'
		7.git push 	
		8.在dev项目分支上,拉取合并上传内容,git pull,在本地运行一下,可以知道有没有问题
*/	
3.上班前
/*     上班前:
       1.如果功能没做完,且分支就只有自己一个人的时候,可以接着前一天内容直接写。
       	 上传时间:可以整个功能都做好之后,一起上传合并。
       如果多个功能多人可能更改每天,早上来的第一件事,就是git pull,运行看有没有问题,没有问题可以切到xiaobai分支,在xiaobai 分支上git merge dev ,这一步可以实现,xiaobai分支和dev分支是同步的,如果不想要那么多分支,可以只建一个分支即可,每天git pull,提交。
       
       2.git checkout xiaobai 切换到每天写代码的分支
       3.在xiaobai分支里面 合并代码 git merge dev这样的话,线上的代码和xiaobai 分支里面的代码每天是一致的,
       4.在xiaobai 分支里面继续写功能 ,如果没有冲突,则会个分支里写的内容会同步到,本地的dev分支里面去
       5.下班前,在小白分支里面,先git add .  git commit -m '注释',及时把自己写的代码先提交到暂存区
       6.切换到dev 分支,git pull拉取线上的代码
       7.git merge xiaobai,解决冲突
*/
       最好不要自己轻易合并文件,要问下项目老大,合并要不要自己来合,在操作

一、工作流程

1.连接远程仓库

说明:

git pull origin 分支名 --allow-unrelated-histories 拉取下拉的时候可以同步远程

git push --set upstream 远程连接别名 写过一次用git push就可以了,gitpush

1. 创建远程库
2. 远程库与本地库关联

https

ssh

git remote add <远程连接别名,一般默认使用origin> <远程仓库的https地址或ssh地址>
3. 查看本地库与远程库的关联信息
git remote -v
4. 克隆远程库

李四加入到张三的公司,李四需要将Apple项目克隆到本地

张三给李四一个远程仓库的地址

李四使用 git clone <远程仓库的地址> 克隆项目到本地

5. 推送 push

李四已经克隆了代码,张三让李四做一个登陆的功能。

不要直接在master上写代码,询问张三(老大)我基于那个分支做开发。

一个功能一天做不完,也需要每天下班之前提交推送一下。(有些公司老大要看看工作饱和度)

推送时权限错误:

image.png

需要加入到项目

6. 抓取 fetch

git fetch <远程仓库连接别名> <远程仓库的分支名>

7. 合并 merge

处理问题之后,做merge

8. 拉取 pull

pull = fetch + merge

2.1 ssh免登录

1 需要先查看本地电脑是否有 ssh 相关的东西 (用户目录下是否有 .ssh 的文件夹)。有就先删除吧。

2 创建 ssh key

ssh-keygen -t rsa -C "邮箱地址"

3 接着在 用户目录下找到 .ssh 文件夹中的 id_rsa.pub 这个文件,或者可以用命令去找到这个文件

用户的SSH密钥存储在其~/.ssh目录下

$ cd ~/.ssh
$ ls
id_dsa id_dsa.pub

4 复制 id_rsa.pub 中的内容

5 去远程托管平台上添加 ssh

1 这时克隆项目时就可以直接选择使用 ssh 的方式

2 先将本地的https的连接方式给删除,换成 ssh 的连接方式

3.1 跨团队协作开发

一、对某个开源代码感兴趣

1 将这个开源的项目 fork 一份到我的远程仓库

2 clone 我 fork 的这个项目到本地

3 写好代码推送到自己的远程

4 创建 pull request

二、分支管理

1.分支命令

1.1 查看分支

git branch 查看本地仓库的分支情况

git branch -r 查看远程仓库的分支情况

git branch -a 查看本地与远程的所有分支情况

1.2 创建分支 ***

git branch <分支名字> 只是创建分支

git checkout -b <分支名字> 创建分支,并切换到新创建的这个分支上***********

1.3切换分支***

git checkout <分支名字>

注意:本地如果不存在这个分支,则会把远程的给弄下来,如果远程也没有,就报错。 注意和带-b是不同的

1.4合并分支****

先切换被合并的分支上。

使用 git merge <需要合并的分支>

1.5 合并时解决冲突

原因:两个分支在同一个代码上的某一个位置做了修改,这些 git 合并时不知道该听那个分支的。

1 找到有冲突的文件

2 删除这个文件中的特殊标记

3 找到相应的开发人员去商量到底如何处理这个情况,用你的,还是用我的,或者两个都保留

4 git add

5 git commit

1.6 删除分支

git branch -d <分支名字> 以及合并过的分支可以这样去删除

git branch -D <分支名字> 没有合并过的分支,但是里面有代码修改,使用 -d 删除,是删除不了的。确定要删除,就是用 -D

三、git基本操作命令和配置

3.0、 工作区、暂存区、版本库

工作区:写代码 --> git add --> 暂存区 --> git commit --> 版本库

3.1、用户信息配置

配置作用:区分不同开发人员的身份

配置方式:

    1. 项目级别/仓库级别
git config user.name "你的名字"
git config user.email "你的邮箱"

# 配置信息在当前项目的 .git/config 文件中
    1. 系统用户级别
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

# 配置信息存放在 系统的用户目录下   C:\Users\<当前系统的用户名>\.gitconfig 文件

优先级:项目级别 > 系统级别

如果想重新配置: 把.git/config 文件或者 C盘里面的.gitconfig文件删除即可

3.2、git命令

2.1.日志

git log 列出所有日志,如果一屏展示不下,可以使用键盘操作翻页。这时使用 Ctrl + C 退出不了。可以使用 q 来退出

git log --oneline / git --pretty

git reflog 列出最近git的所有相关操作日志。版本前进时可以参考

git log - 列出最近的 num 条提交日志

2.2. 撤销修改 **

工作区的修改:

(说明:还没有git add,但是文件想撤销修改,命令中文件名前有–,中间有空格**)

git checkout –

暂存区的修改:

(即已经git add过,需要撤销,这时需执行下面俩个命令才行,命令中文件名前没有–,要看清)

1 git reset HEAD 空格 撤销暂存区的修改

2 git checkout – 撤销工作区的修改

工作区的新增: 直接删除新增的文件即可

说明:对工作区中文件的修改分为三种情况:

(1)还没有git add

(2)已经git add

(3)已经git add,并再次进行修改

对于第一种情况,直接使用git checkout – 文件,即可撤销修改,撤销修改就回到和版本库一模一样的样子。

第二种情况,先使用(git reset HEAD – 文件),然后在使用(git checkout – )文件进行修改撤销。

第三种情况 先使用git checkout – 文件,文件就会变成添加到暂存区后的状态,也就转换成了“第二种情况”,然后,在使用情况(2)中的处理方法,即可将文件恢复到与版本库一致的状态。

2.3.版本回退和前进***

版本回退的本质:

就是一个 HEAD 指针的操作

基于Commit Id操作 (推荐)

git reset --hard

使用 ^ 符号操作

git reset --hard HEAD^ 回退到当前版本的上一个版本

只能回退

使用 ~ 符号操作

git reset --hard HEAD~ 回退到当前版本的上 num 个版本

只能回退

2.4. 删除文件并找回

找回文件有个前提条件:要找回的文件以及被git管理起来了。 使用版本回退相关的处理

2.5.git其他命令

git init 生成.git文件夹

git add / git add . 表示把某个文件,点代表所有文件,提交到暂存区

git status 查看状态

cat 文件名 可以查看文件内容

touch 文件名 表示创建文件夹

vim 文件名 进入编辑器,i 输入后,可以写内容,写完之后需要按esc+:wq 保存并退出

git commit -m ‘提交的信息说明’ 回车之后直接提交了,不会进入 vim 中

git commit 回车之后会进入到 vim 编辑器中,需要输入这次提交的日志

ls 查看当前目录下所有内容 ll / ls-a 查看的内容不同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值