技巧计算,那个git才具够你用一年了

Posted by

创建和采纳git ssh key

新博客更新:http://noogel.xyz/2015/08/14/1.html

第一设置git的user name和email:

 

git config --global user.name "xxx"
git config --global user.email "xxx@gmail.com"

用git有一年了,上边是作者那个时候来的git使用总计,覆盖了普通使用中比比较多的现象。嗯,至少是十足一年了,整理出来分享给大家,不明了的地点能够过来互换。

查看git配置:


git config --list
git设置关闭自动换行

git config –global core.autocrlf false
为了保障文件的换行符是以安全的措施,防止windows与unix的换行符混用的状态,最棒也增多如此一句
git config –global core.safecrlf true


接下来生成SHH密匙:

git tag 使用
git tag  # 列出当前仓库的所有标签
git tag -l 'v0.1.*'  # 搜索符合当前模式的标签

git tag v0.2.1-light  # 创建轻量标签
git tag -a v0.2.1 -m '0.2.1版本'  # 创建附注标签

git checkout [tagname]  # 切换到标签
git show v0.2.1  # 查看标签版本信息

git tag -d v0.2.1  # 删除标签
git tag -a v0.2.1 9fbc3d0  # 补打标签

git push origin v0.1.2  # 将v0.1.2标签提交到git服务器
git push origin –tags  # 将本地所有标签一次性提交到git服务器
git tag  # 查看当前分支下的标签

 查看是或不是早就有了ssh密钥:

怎么遍历移除项目中的全体 .pyc 文件

sudo find /tmp -name "*.pyc" | xargs rm -rf替换/tmp目录为专门的学业目录
git rm *.pyc以此用着也得以

防止再度误提交,在类型新建.gitignore文件,输入*.pyc过滤文件


以上2015/12/20更新


cd ~/.ssh
创办和平运动用git ssh key

第一设置git的user name和email:

git config --global user.name "xxx"
git config --global user.email "xxx@gmail.com"

查看git配置:

git config --list

一经没有密钥则不会有此文件夹,有则备份删除

然后生成SHH密匙:

查看是不是曾经有了ssh密钥:cd ~/.ssh
若是未有密钥则不会有此文件夹,有则备份删除
生活密钥:

ssh-keygen -t rsa -C "xxx@gmail.com"

按3个回车,密码为空这里一般不采取密钥。
最终收获了八个文件:id_rsa和id_rsa.pub
在意:密匙生成就不要改了,倘若已经成形到~/.ssh文本夹下去找。


生活密钥:

git改造项目地址
git remote set-url origin git@192.168.6.70:res_dev_group/test.git
git remote -v

ssh-keygen -t rsa -C "xxx@gmail.com"
翻开有个别文件的修改历史

git log –pretty=oneline 文件名 # 展现修改历史
git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e # 查看更动


按3个回车,密码为空这里一般不行使密钥。 

git push 时报错 warning: push.default is unset;

‘matching’参数是 Git 1.x 的默许行为,其意是一旦你实施 git push
但未有一点点名分支,它将 push 全体你本地的道岔到长途饭店中对应协作的支行。而
Git 2.x 暗中同意的是 simple,意味着推行 git push
未有一些名分支时,唯有当前分支会被 push 到你选择 git pull 获取的代码。
基于提醒,修改git push的行为:
git config –global push.default matching
重新实践git push 获得缓慢解决。


最后得到了五个公文:id_rsa和id_rsa.pub

git submodule的运用拉子项目代码

支付进度中,常常会有点通用的有的希望收取出来做成一个公共库来提要求别的工程来采纳,而集体代码库的本子管理是个麻烦的事情。前几日无意中窥见了git的git submodule一声令下,以前的主题素材消除了。
添加

为当前工程增加submodule,命令如下:

git submodule add 仓库地址 路径

当中,酒店地址是指子模块仓库地址,路线指将子模块放置在现阶段工程下的不二诀要。
在意:路线不能够以 /
结尾(会形成修改不见效)、不能够是水土保持工程已部分目录(无法順利 Clone)

一声令下实践到位,会在前段时间工程根路线下生成贰个名称为“.gitmodules”的公文,在那之中记录了子模块的音讯。加多落成未来,再将子模块所在的文书夹增添到工程中就可以。
删除

submodule的去除稍微麻烦点:首先,要在“.gitmodules”文件中剔除相应布置音讯。然后,推行git rm –cached命令将子模块所在的文书从git中删除。
下载的工程饱含submodule

当使用git clone下来的工程中涵盖submodule时,初叶的时候,submodule的剧情并不会活动下载下来的,此时,只需推行如下命令:

git submodule update --init --recursive

就能够将子模块内容下载下来后工程才不会贫乏相应的文本。


注意:密匙生成就不要改了,要是已经改造到~/.ssh文件夹下去找。

git add文件撤废

在git的一般选拔中,假使发现错误的将不想付出的文件add步入index之后,想回落撤除,则足以应用命令:git reset HEAD <file>...,同有时间git
add达成之后,git也会做相应的提示。


git退换项目地址

git删除文件:

去除文件追踪何况删除文件系统中的文件file1git rm file1
付出刚才的去除动作,之后git不再处理该文件git commit

除去文件追踪但不删除文件系统中的文件file1git rm --cached file1
付出刚才的去除动作,之后git不再处理该文件。可是文件系统中依旧有file1。git commit


 

本子回降

本子回降用于线上系统出现难点后卷土重来旧版本的操作。
回降到的版本git reset --hard 248cba8e77231601d1189e3576dc096c8986ae51
回降的是颇具文件,借使后悔回落能够git pull就足以了。


git remote set-url origin git@仓库地址:路径/test.git

git remote -v
野史版本对照

翻看日志git log
查阅某一历史版本的交由内容git show 4ebd4bbc3ed321d01484a4ed206f18ce2ebde5ca,这里能看到版本的详细修改代码。
对照分化版本git diff c0f28a2ec490236caa13dec0e8ea826583b49b7a 2e476412c34a63b213b735e5a6d90cd05b014c33


翻看有个别文件的修改历史

分层的意义与管理

开创分支可防止止提交代码后对主分支的熏陶,相同的时间也令你有了相对独立的开支条件。分支具备很入眼的意义。
始建并切换分支,提交代码后技术在别的机器拉分支代码git checkout -b new_branch
查看当前支行git branch
切换到master分支git checkout master
联合分支到最近支行git merge new_branch,合併分支的操作是从new_branch合併到master分支,当前碰到在master分支。
除去分支git branch -d new_branch


git log --pretty=oneline 文件名 # 显示修改历史

git show 356f6def9d3fb7f3b9032ff5aa4b9110d4cca87e # 查看更改
git冲突文件编写制定

冲突文件争论的地点如上面那样

a123
<<<<<<< HEAD
b789
=======
b45678910
>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc
c

争辨标志<<<<<<<
(7个<)与=======之间的源委是自身的修改,=======与>>>>>>>之间的剧情是旁人的修改。
那儿,还未有别的别的垃圾文件爆发。
您要求把代码合併好后再一次走三次代码提调换程就好了。


git push 时报错 warning: push.default is unset;

不比愿的代码提交换程

git push前边世谬误可能是因为别的人付出了代码,而让你的本地代码库版本不是风靡。
那会儿你必要先git pull代码后,检查是或不是有文件冲突。
从未有过公文争持的话供给重新走一次代码提沟通程add —> commit —> push
竭泽而渔文件冲突在背后说。


‘matching’参数是 Git 1.x 的暗中同意行为,其意是一旦您推行 git push
但未有一点点名分支,它将 push 全体你本地的分支到长途旅舍中对应非常的道岔。而
Git 2.x 暗中认可的是 simple,意味着施行 git push
未有一点名分支时,唯有当前分支会被 push 到您采纳 git pull 获取的代码。

git顺遂的交付代码流程

查阅修改的文书git status
为了严慎检查一下代码git diff
加上修改的文书git add dirname1/filename1.py dirname2/filenam2.py,新加的公文也是从来add就好了;
加上修改的日志git commit -m "fixed:修改了上传文件的逻辑"
付出代码git push,假若提交失败的或许原因是本地代码库版本不是风靡。


依赖提示,修改git push的表现:

理解github的pull request
git config --global push.default matching
有五个储藏室,叫Repo A。你借使要往里贡献代码,首先要Fork那一个Repo,于是在您的Github账号下有了贰个Repo A2,。然后你在那些A2下专门的学业,Commit,push等。然后您愿意原始商旅Repo A合併你的行事,你能够在Github上提倡一个Pull Request,意思是需要Repo A的主人从您的A2联合分支。借使被查处通过并标准合併,那样您就为品种A做进献了。

双重实践git push 获得消除。

某个错误处理

git submodule的施用拉子项目代码

“pathspec ‘branch’ did not match any file(s) known to git.”错误
git checkout master
git pull
git checkout new_branch

 开荒进度中,日常会有一对通用的有个别希望抽出出来做成贰个公共库来提需求其余工程来行使,而国有代码库的本子管理是个艰辛的事务。前天无意中开掘了git的git
submodule命令,在此之前的标题解决了。

使用git提交比较大的文件的时候只怕会冒出这些错误

error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

那样的话首先改一下git的传导字节限制

git config http.postBuffer 524288000
然后那时候在传输或然会现出另贰个谬误

error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

那多个谬误看上去相似,一个是411,贰个是413

上边这么些张冠李戴加多一下密钥就足以了

先是key-keygen 生成密钥

接下来把调换的密钥复制到git中本人的账号下的照顾地点

git push branch

1.添加

为近期工程加多submodule,命令如下:

git submodule add 仓库地址 路径

里面,仓库地址是指子模块旅舍地址,路线指将子模块放置在近年来工程下的门径。 

瞩目:路线不可能以 /
结尾(会促成修改不见效)、无法是并存工程已部分目录(无法順利 Clone)

指令实践到位,会在当下工程根路线下生成多个名称叫“.gitmodules”的文书,其中记录了子模块的音信。加多实现今后,再将子模块所在的文本夹增多到工程中就可以。

2.删除

submodule的删除稍微麻烦点:首先,要在“.gitmodules”文件中删去相应布署新闻。然后,实践git
rm –cached命令将子模块所在的文书从git中剔除。

下载的工程包括submodule

 当使用git
clone下来的工程中蕴涵submodule时,起先的时候,submodule的内容并不会活动下载下来的,此时,只需实践如下命令:

 

git submodule update --init --recursive

就能够将子模块内容下载下来后工程才不会缺乏相应的文本。

git add文件撤除

在git的一般接纳中,即便开采错误的将不想付出的文件add走入index之后,想回降撤除,则足以利用命令:git
reset HEAD <file>…,同期git
add实现之后,git也会做相应的提醒。 

git删除文件:

去除文件追踪何况删除文件系统中的文件file1git rm file1

交由刚才的删减动作,之后git不再管理该公文git commit

除去文件追踪但不删除文件系统中的文件file1git rm –cached file1

付给刚才的删减动作,之后git不再管理该文件。不过文件系统中还是有file1。git
commit

 

本子回降

 

本子回退用于线上系统出现难题后回复旧版本的操作。

回落到的版本git reset –hard 248cba8e77231601d1189e3576dc096c8986ae5

回落的是负有文件,如若后悔回降能够git pull就能够了。

野史版本对照

查看日志git log

查阅某一历史版本的交付内容git show
4ebd4bbc3ed321d01484a4ed206f18ce2ebde5ca,这里能收看版本的详实修改代码。

比较之下分裂版本git diff c0f28a2ec490236caa13dec0e8ea826583b49b7a
2e476412c34a63b213b735e5a6d90cd05b014c33

支行的意义与管理

开创分支可避防止提交代码后对主分支的熏陶,同不常间也令你有了相对独立的付出条件。分支具备很主要的意义。

创造并切换分支,提交代码后手艺在任何机器拉分支代码git checkout -b
new_branch

翻开当前支行git branch

切换到master分支git checkout master

合併分支到近些日子支行git merge
new_branch,合併分支的操作是从new_branch合併到master分支,当前条件在master分支。

剔除分支git branch -d new_branch

git争持文件编写制定

冲突文件争论的地点如下边那样

a123

<<<<<<< HEAD

b789

=======

b45678910

>>>>>>> 6853e5ff961e684d3a6c02d4d06183b5ff330dcc

c

 

争辩标识<<<<<<<
(7个<)与=======之间的原委是自己的改换,=======与>>>>>>>之间的剧情是外人的改变。

 

此刻,还不曾别的别的垃圾文件发生。

 

你需求把代码合併好后再也走三次代码提交换程就好了。

 

不顺畅的代码提调换程

 

在git
push前面世谬误可能是因为其余人付出了代码,而让你的本地代码库版本不是前卫。

 

那会儿你须要先git pull代码后,检查是或不是有文件争辨。

 

尚未公文争辩的话要求再度走三遍代码提沟通程add —> commit —> push。

 

消除文件抵触在前面说。

 

git顺遂的付出代码流程

 

翻开修改的文本git status;

 

为了严慎检查一下代码git diff;

 

增进修改的公文git add dirname1/filename1.py
dirname2/filenam2.py,新加的文件也是直接add就好了;

 

加多修改的日志git commit -m “fixed:修改了上传文件的逻辑”;

 

交由代码git push,假诺提交退步的或是原因是地面代码库版本不是最新。

 

理解github的pull request

 
有多个库房,叫Repo
A。你只要要往里进献代码,首先要Fork那几个Repo,于是在你的Github账号下有了四个Repo
A2,。然后您在那几个A2下办事,Commit,push等。然后你指望原始仓库Repo
A合併你的劳作,你能够在Github上发起八个Pull Request,意思是恳求Repo
A的主人从你的A2群集分支。假如被查处通过并规范合併,那样你就为项目A做贡献了。

部分错误管理

“pathspec ‘branch’ did not match any file(s) known to git.”错误

git checkout master

git pull

git checkout new_branch

运用git提交一点都不小的文书的时候恐怕会并发这几个荒唐

error: RPC failed; result=22, HTTP code = 411

fatal: The remote end hung up unexpectedly

fatal: The remote end hung up unexpectedly

Everything up-to-date

 那样的话首先改一下git的传导字节限制

git config http.postBuffer 524288000 

下一场那时候在传输只怕会冒出另二个谬误

error: RPC failed; result=22, HTTP code = 413

fatal: The remote end hung up unexpectedly

fatal: The remote end hung up unexpectedly

Everything up-to-date

那五个错误看上去相似,叁个是411,三个是413 

上边这一个错误增添一下密钥就可以了

首先key-keygen 生成密钥然后把调换的密钥复制到git中友好的账号下的照看地方

git push ssh:

//192.168.64.250/eccp.git branch

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注