git自用

Git

本地库初始化

git init

在新建的项目文件夹下打开git base 进行本地库的初始化,

配置用户信息

###1. 项目用户信息配置

git config user.name '用户名'
git config user.email '邮箱'
//邮箱名是不会验证的,只是作为一个名字用于在日后能够看到是谁提交的

###2. 全局用户配置

git  config --global user.name '用户名'
git  config --global  user.email '邮箱地址'

两种配置的优先级,

项目配置 > 全局用户配置

常用命令

###1.查看状态

git status

###2. 添加到到暂存区

​ .表示将当前路径中的所有修改 或新增文件全部添加到暂存区

git add . / 文件名

###3.提交

git commit

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

git commit -m '这次提交的日志'

​ 回车以后直接提交,不会进入到vim编辑器

4.查看历史记录

git log

​ 查看所有的提交信息,包含提交时间,提交者,和提交日志,

​ 如果一屏展示不下,可以使用键盘操作翻页,使用esc,ctrl +c都是无法退出的,需要使用q来退出

git log --pretty = oneline

​ 以一行的形式来列出历史提交记录

git log --oneline

以一行的形式来列出历史提交记录。但是commitid比上一条展示的id要更短

git log -<num>

​ 列出最近的num条提交日志

git relog

​ 列出最近git的所有相关操作,版本回退时可以参考

###5.版本回退与前进

·版本回退的本质

​ 就是一个head指针的操作

commit Id也就是上方查看提交记录上展示的id

​ 基于commit的操作

git reset --hard <commit id>

​ 基于 ^ 的操作

​ 回退到当前版本的上一个版本HEAD表示当前版本,只能回退

git reset --hard HEAD^

​ 基于 ~ 的操作

git reset --hard HEAD~<num>

​ 回退到当前版本的上 num 个版本 只能回退

###6. 撤销修改

工作区的修改

git checkout --<filename>

暂存区的修改

`1. git reset HEAD <filename>`    撤销暂存区的修改,将原本提交到暂存区的文件放回到工作区

`2. git checkout  --<filename>`    撤销暂存区的修改

###7. 删除文件并找回

找回文件的前提条件,要找回的文件已经被git跟踪管理了

使用版本回退进行相关处理

8. 缓存 暂时保存

git stash save "保存的提示信息记录"

使用git的时候,我们往往使用分支(branch)解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用git stash就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修Bug,等到修完Bug,提交到服务器上后,再使用git stash apply将以前一半的工作应用回来。

重新应用缓存的stash

git stash pop stash@{num}

恢复之前缓存的工作目录,num是可选项,通过git stash list可查看具体值。只能恢复一次

git stash list	

查看所有保存的记录列表

git stash apply stash@{num}

恢复,num是可选项,通过git stash list可查看具体值。可回复多次

git stash drop stash@{num}

删除某个保存,num是可选项,通过git stash list可查看具体值

git stash clear

删除所有保存

分支管理

###1. 查看分支

查看本地仓库的分支情况

git branch

查看远程仓库的分支情况

git branch -r

查看本地仓库和远程仓库的分支情况

git branch -a

###2. 创建分支

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

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

###3. 切换分支
git checkout <分支名字>

注意:如果本地不存在这个分支,就会去远程上找,如果远程上也没有这个分支就会报错

###4. 合并分支

先切换到被合并的分支上,使用

git merge <需要合并的分支>

比如要将auto分支合并到main分支上,切换到main分支上使用 git merge auto即可

###5. 合并时解决冲突

原因:两个分支在同一个文件的某一个位置做了修改,这些git在合并时不知道应该听谁的

解决办法:

1.在git窗口查看有冲突的文件

​ 2.打开文件,查看并将文件中的特殊标记删除, <<<<=====隔起来的代码块就是当前分支上的代 码,>>>>>号的就是另一个分支上的代码

​ 3.如果两者代码有冲突,业务只要保存一个其中一份代码,就去找到该分支的提交者或者找组长什么的…保留后再addcommit

​ 4.如果两者的代码都需要保留,将特殊标记删除后保留需要的 代码再
执行/add commit

###6. 删除分支

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

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

远程库

1. 连接远程库

​ 远程库拥有https和ssh链接地址

git remote add <远程连接别名,一般使用origin>  <远程仓库的https地址或者ssh地址>

2.查看以及删除本地库和远程库的关联信息

git remote -v	
git remote remove <连接别名>

3.克隆远程库

git clone <https或ssh地址>

克隆指定分支
git clone -b 分支名 http://(git@github.comXXXX.git)

4.推送push

在没有权限的情况下会有一个报错信息

remote:  you do not have failed for "....地址"

添加权限即可推送

git push  <连接别名 一般为origin >  <分支名>

5.抓取fetch

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

6.合并merge

将合并冲突解决完以后进行merge合并操作	

7.拉取pull

pull = fetch + merge 

git pull <别名><分支>

跨团队协作开发

对某个开源代码感兴趣

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

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

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

4 创建 pull request

ssh免登录

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

2 创建 ssh key

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

3 接着在 用户目录下找到 .ssh 文件夹中的 id_rsa.pub 这个文件

4 复制 id_rsa.pub 中的内容

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值