Git 杂记

初次安装

配置基础信息。

1.$ git config --global user.name "你想要显示的姓名"

2.$ git config --global user.email “你想要显示的邮箱 ”

拉代码的时候可以看到有两个选项 一个是Https 一个是ssh

 

配置密钥SSH验证

 一次配置永久免登录。

 

ssh-keygen -t rsa -C "你想显示的标识信息 可以是邮箱也可以是任何字符串"  (全回车跳过,不需要密码)

(默认地址C:/users/用户名/.ssh)中 

id_rsa 私钥

id_rsa.pub 公钥这一对钥匙 用于加密的身份认证,

这一对密钥就是用于ssh 认证

设置->ssh 将公钥中的信息填入其中,即可。

 

 

常用基础命令:

  1. git remote -v : 查看已有分支,主机名
  2. git add (文件名):添加指定变  git status :查看当前变更文件
  3. git add . :添加所有变更(. 可以替换为文件夹, 文件)
  4. git commit  -m "提示信息": 将变更提交到本地
  5. git push (主机名)(分支名): 将推送到远程仓库- (一般是本地派生出来的仓库和分支 不填写默认是当前分支)
  6. git pull (地址https/ssh)(分支名): 获取指定分支指定内容到本地 。
  7. scp 文件 用户名@地址:目的位置 :将文件传输到指定位置。
  8. ssh username@host_ip : 连接到远程linux 服务器
  9. git fetch --all && git reset --hard origin/master: 获取仓库内容强制覆盖本地修改。

 

一般的项目开发流程:

派生:

首先派生出自己的 项目地址。

克隆:

1.克隆你的项目地址的HTTPS 或 SSH  

 

2.来到你的文件夹右键呼出 git Bash(也可以从桌面或别的地方呼出Git 界面然后cd 进入到要克隆的位置)

3.git clone https://github.com/×××  或 git clone ssh://igerrit.storm:29418/tools/repo.git ,

 

克隆完成后去到文件夹内邮件呼出git 

能看到分支。

这时候你可以 将主项目仓库地址添加的 git 中取一个别名便于使用:

用于以后的拉取。(git pull zhucangku <fenzhi>)

推送

1.git add . :添加所有变更(maven相关文件不要推送上去 pom文件每次加载都能获取到 可以配置 .gitigore文件设置过滤)

2.git commit -m "备注信息"

3.git push (主机名)(分支名)(PS: 一般不用填写,默认都是当前。)

如此便完成了像自己的仓库推送代码, 前往gitLab 或者别的代码管理平台,申请讲代码与主分支合并,就完成了一次开发。

 

 

.gitigore文件常见过滤设置:

 

 

发生错误:

最后一招: 删除派生关系 重新派生。

 

一些经验之谈:

分支: 版本控制,不同的分支可以代表不同的一份代码,便于开发迭代和干别的事情。

目前的项目git 流程:

先有一个主分支, 随着迭代慢慢延展出新的分支,

例如刚开始开发的时候 master 大家都在上面写东西, 然后迭代二了, 测试还在测试 master上的东西,

开发就可以另开一个分支, (克隆的master分支),在新分支上进行开发。 如此反复。最后全合并,BUG 也会在新分支上修复。最后合并。

一个普通员工的git使用: 先派生出属于自己的项目,所谓派生其实就是复制一份。 然后地址会变成自己的地址,派生其实是没有多大关联的。 你在自己的派生项目上将代码clone到本地,这就是一份可执行的代码。

你想将自己的代码推到 主分支:

首先推到自己的分支,然后再进行合并操作。(合并需要权限)

 

推错东西了:

1.放弃所有修改 直接覆盖本地。(内容太多不知道怎么改)

2.推送合远端一致的内容, git 会自动合并。 有时候你看着你改动了很多文件 其实git判断内容与远端一致 会自动合并

 

git log #查看日志 (gitLab 查看更为便捷~)

git reset --hard HEAD~1 #回退1步

git reset --hard efa5bde #回退指定

坑:

 我在分支1写东西, 项目开了另一个分支2, 我写完东西之后推送到分支1的远端, 然后开始去分支2 写东西。 开分支2的时候使用的是本地分支1 (PS:此时的分支1 已经不是项目开分支2的时候的分支1了)。此时我没有拉取远端分支2的代码 所以我本地的分支2 其实和远端的不一致的。

带来的问题:

我推送上去的代码自然和分支2 想要的新增不一致, 夹带了我在分支1 多出来的这些内容。、

怎么解决的:

1. 我尝试新建分支,将分支2 写的东西复制出来, 拉取分支2 的内容后,重新添加文件。尝试是吧, 分支1的内容依存在。

2.删除派生关系肯定可以,但是不想用。

3.使用git reset --hard。 将分支2的内容 回退到指定的分支2 而不是使用pull 拉取分支2 的内容。 成功了。

总结:

git 的缓存机制, 你提交的代码会被默认加载一起给你, 所以新建分支后拉取的远端代码其实是夹带了的。

reset 强制回退到分支创建前的版本即可。

 

---------------------------------------

 

大文件限制

git 每次上传文件是有限制的, push 50mb 警告 100mb 限制

当commit 了100mb 以上的大文件时, push 就会报错, 提示你push了大文件。

删除大文件后重新 add commit push 三连并不不能解决问题,因为Git 会回头去Log 检查你的提交 依然会提示大文件push

解决办法:

使用 git log 命令 /或者直接打开log 文件查看近期提交记录。

 

 

回退到 更早之前的commit (文件并不会丢失,)删除大文件(错误提示里有大文件是什么。)后 再次add commit push 即可。

 

.git文件提交多了很大。

带来的影响: 每次clone 都会去clone .git 文件 github本来就慢,.git内记录的提交记录一多就会有上GB。

原因:每次提交都会记录下本次的提交记录。

解决办法 :只是省事 clone 的时候可以在后方加 -depth == 10 参数(只保留最近10此提交)

也可以删除历史提交。(感觉会有不好的地方。。还是不要删除为好)

git for-each-ref --format="delete %(refname)" refs/original | git update-ref --stdin
git reflog expire --expire=now --all
git gc --prune=now
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值