git使用手册

摘要:
您可以修改eclipse设置以在本地使用Linux的行终止符;您还可以设置git参数核心。autocrlfI官方文档格式化和Whitespacecore Autocrlf 1.如果您在Windows上编程,但其他人使用非Windows编程,您如何解决此问题?
-2、pull by url
git remote set-url origin --push --add user1@repo1
git remote set-url origin --push --add user2@repo2
git remote -v
-1、gitlab使用:

ssh-keygen -t rsa -C "your_email@unisound.com"

可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

登陆 Gitlab,在『User Settings』→『SSH Keys』页面,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,保存。

本地 git 安装后,需要设置用户名和email:

$ git config --global user.name "Your Name"
$ git config --global user.email "your_email@unisound.com"

 

0、配置git使用代理的问题

注意查看ss的socket设置

git使用手册第1张

然后编辑

git config --global http.proxy socks5://127.0.0.1:1086
git config --global https.proxy socks5://127.0.0.1:1086
可以查看
.gitconfig文件
1、merge以后查看diff

git 做了 merge的时候,比如 当前分支是 dev,需要merge rls的代码

git pull origin rls

做完merge以后,形成了3份代码:新代码、dev原来的代码、rls的代码,需要比较新代码和 dev原代码的不同,也要比较 新代码和 rls的区别

git  diff dev

git diff rls

2、merge的时候希望pom文件必选按照某个的

如果做了 merge以后,比如就是希望保留本地的 pom文件,或者就是希望保留 rls的pom文件

这个时候不需要做rebase,只需要

git checkout --ours unisound-commons-time/pom.xml

--ours 表示用 我当前所在分支的版本。

--theirs表示,用另外一个分支的版本

3、结合12的一个案例

比如做了merge虽然没有冲突,但是git diff dev一看,有个文件并不想修改,所以还想保留merge以前的本地(dev)版本

就可以 git checkout --ours **file**

这里的概念  ours和theirs表示 本地和远程 dev 和 rls

 

4、摘草莓

假如你想删掉一个分支,但是对于里面的一些commit想保留到另一个分支上,这个时候就可以做摘草莓的技术

git使用手册第2张

5、从一个commit创建一个分支

git branch **_before_merge 679856aa5
git checkout **_before_merge

查看某次commit提交的文件

git show --name-only e893e3175

6、eclipse 换行符

CRLF换行回车是windows使用的行结束符;而LF换行是linux使用的行结束符;所以两者会发生问题。

可以修改eclipse设置使得本地使用linux的行结束符;也可以设置git的参数 core.autocrlf

git使用手册第3张

 

I

官方文档Formatting and Whitespace

core.autocrlf

》》1、如果你在windows编程,但是其他人用非windows编程 you’ll probably run into line-ending issues at some point.

git如何解决这个问题?

git会自动将CRLF换行回车转为LF换行,当你做add a file to index的时候;与此对应,checkout的时候也会将LF换行转为CRLF换行回车需要设置:

$ git config --global core.autocrlf true

》》2、如果你是linux编程,不想git自动行结束符转换,但是如果一个文件意外的行结束符是CRLF你希望git修复他,这个时候使用 core.autocrlf为input

If you’re on a Linux or Mac system that uses LF line endings, then you don’t want Git to automatically convert them when you check out files; however, if a file with CRLF endings accidentally gets introduced, then you may want Git to fix it. You can tell Git to convert CRLF to LF on commit but not the other way around by setting core.autocrlf to input:

$ git config --global core.autocrlf input

This setup should leave you with CRLF endings in Windows checkouts, but LF endings on Mac and Linux systems and in the repository.

 7、merge冲突是因为对方删除而导致
Unmerged paths:
  (use "git add/rm ..." as appropriate to mark resolution)

        deleted by them:    src/main/java/com/example/filevisitor/PrintingFileVisitor.java

Resolving this type of conflict is pretty easy. You just have to tell Git whether you want to keep the file in your current branch using command:

$ git add file_name

or if you want to remove it completely:

$ git rm file_name
 8、两次git pull 

这里的前提假设是你的分支要merge到dev分支

git pull  自己的分支;

Git pull dev

这样可以省好多不必要的麻烦

 9、如果有一个文件你做过commit,但是你想忽略掉不做更新了怎么办?

If you want to ignore a file that you've committed in the past, you'll need to delete the file from your repository and then add a .gitignore rule for it. Using the --cached option with git rmmeans that the file will be deleted from your repository, but will remain in your working directory as an ignored file.

首先进入.gitignore 文件所在的目录
$ echo debug.log >> .gitignore
如何查看gitignore项是否生效?
$ git check-ignore -v filename $ git rm --cached debug.log rm 'debug.log' $ git commit -m "Start ignoring debug.log"


>>>另一种情况,如果你将某个目录加入了gitignore,但是做git status可能看到添加的目录没有生效,这个时候可以
git rm -r --cached .
git add .
git commit -m ".gitignore is now working"
>>>注意在.gitignore 文件的写法(********)

./data_totrain_w2v/-----------不会真正忽略  不能以./开头
data_totrain_w2v/------------正确写法

 



 10、某位牛人的说法(我还没看懂)

我多次推荐过一个 git 分支模型,它的关键思想是:长期存在的分支只有 develop 和 master,develop 是开发分支,master 是发布分支;master 分支每个节点都会以版本号打上 tag。

在实践中,会遇到一个问题。根据语义化版本的定义,大版本号升级意味着 API 的变化。当我们的 master 分支中包含超过一个大版本时,如果在一个较早的大版本上要做 bug 修复或者根据客户需求增加功能,就意味着必须新建一个长期分支。这违反了只有两个长期分支的原则。

我在这里提出一个解决方案:在做大版本更新前,fork 出一个新的 repo,未来在这个版本上的修改将在这个 repo 上执行。这样,所有 repo 都将遵守上述分支模型的约定。

免责声明:文章转载自《git使用手册》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇远程连接ubuntu的MongoDB遇到的坑mybatis plus 主键生成 Twitter雪花算法 id 及修改id为字符型下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Git 分支及bug分支合并

branch 分支学习:branch称为分支,默认仅有一个名为master的分支。一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支。 学习参考上图,也可以按照着这样的流程进行开发,如果遇到上文开发到一般需要临时修复Bug的情况,可以按照下图的流程进行:   注意:git merge 时也可能会出现冲突,解决冲突的...

Git 【管理篇】

Git 介绍 Git 是什么?傻瓜内容跟踪器(The stupid content tracker)!Git 创始人、Linux 之父 Linus Torvalds 就是这样介绍 Git 的。 Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,服务器端软件支持不再...

Git学习之路(4)- 撤销操作、删除文件和恢复文件

▓▓▓▓▓▓ 大致介绍   经过前面的学习(小白学Git)已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即:     ◆ 撤销操作     ◆ 删除文件     ◆ 恢复文件   我在此之前,已经将三个文件提交到了版本库 ▓▓▓▓▓▓ 撤销操作   撤销操作的语法: git checkout -- 文件名   撤销...

11 个 Linux 上最佳的图形化 Git 客户端

  Git是软件开发和若干其他版本控制任务免费和开源的分布式版本控制系统。它被设计用来以应付一切从小到非常大的项目,基于速度,效率和数据完整性。 Linux用户主要通过命令行管理Git,不过,一些图形用户界面(GUI)Git 客户端可以促进Git在Linux桌面上的高效和可靠使用,并提供大多数命令行操作,如果不是所有命令行的话,完全可以满足你日常的需求。...

48 git使用

0 引言git/github是当前最好的代码版本管理和协同工作工具。最近我终于用上了这一先进工具,撒花撒花! # 先把大神廖雪峰的链接献上https://www.liaoxuefeng.com/wiki/896043488029600# 官方教程https://git-scm.com/ 1 配置git使用环境git的使用环境主要包括git的安装、设置SSH...

Pandas数据合并方法merge()、concat()、combine_first()方法,数据的重塑和矩阵转置等操作的实现

阅读提示 本文将提到Pandas数据合并方法merge()、concat()、combine_first()方法,数据的重塑和矩阵转置等操作的实现 目录 阅读提示 一、数据合并 1、pandas.merge() 方法 以列名为连接键 以索引作为连接键 2、pandas.concat() 方法 3、combine_first() 方法 二、数...