欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

git 补充笔记

程序员文章站 2022-05-10 22:57:51
...

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上写代码,询问张三(老大)我基于那个分支做开发。

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

推送时权限错误:

git 补充笔记

需要加入到项目

6. 抓取 fetch

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

7. 合并 merge

处理问题之后,做merge

8. 拉取 pull

pull = fetch + merge

2.1 ssh免登录

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

2 创建 ssh key

ssh-****** -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 查看的内容不同

相关标签: git