Git利用条记

打印 上一主题 下一主题

主题 577|帖子 577|积分 1731

全局Git配置


  • 查看用户名和邮箱
  1. git config user.name
  2. git config user.email
复制代码

  • 修改用户名和邮箱
  1. git config --global user.name "username"
  2. git config --global user.email "email"
复制代码

  • 生成SSH公钥
  1. ssh-keygen -trsa -C"邮箱"
复制代码

  • 重置git当地暗码
  1. git config --system--unsetcredential.helper
复制代码
新建代码库
  1. # 在当前目录新建一个Git代码库     
  2. git init     
  3. # 新建一个目录,将其初始化为Git代码库 git init [project-name]     
  4. # 下载一个项目和它的整个代码历史     
  5. git clone [url]   
复制代码
分支管理


  • 查看远程分支
  1. 使用如下命令查看所有远程分支: git fetch git branch -r
复制代码

  • 拉取远程分支并创建当地分支
  1. # - 方法一
  2. # 使用如下命令:
  3. git checkout -b 本地分支branch_x origin/远程分支名name
  4. # 使用该方式会在本地新建分支branch_x,并自动切换到该本地分支branch_x。
  5.    
  6. # - 方式二
  7. # 使用如下命令:
  8. git fetch origin 远程分支名name:本地分支branch_x
  9. # 使用该方式会在本地新建分支branch_x,但是不会自动切换到该本地分支branch_x,需要手动checkout。
复制代码
stash
  1. git stash
  2. git pull
  3. git stash pop
复制代码
分支文件对比


  • 显示出branch1和branch2中差异的部分
  1. git diff branch1 branch2 --stat
复制代码

  • 显示指定文件的详细差异
  1. git diff branch1 branch2 具体文件路径
复制代码

  • 显示出所有有差异的文件的详细差异
  1. git diff branch1 branch2
复制代码

  • 查看branch1分支有,而branch2中没有的log
  1. git log branch1 ^branch2
复制代码

  • 查看branch2中比branch1中多提交了哪些内容
  1. git log branch1..branch2
复制代码
留意,列出来的是两个点后边(此处即dev)多提交的内容。

  • 不知道谁提交的多谁提交的少,单纯想知道有什么不一样
  1. git log branch1...branch2
复制代码

  • 在上述情况下,在显示出每个提交是在哪个分支上
  1. git log -lefg-right branch1...branch2
复制代码
留意 commit 后面的箭头,根据我们在 –left-right branch1…branch2 的次序,左箭头 < 表示是 branch1 的,右箭头 > 表示是branch2的。
文件撤销操作


  • 未利用 git add 缓存代码时
可以利用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中心的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以利用 git checkout . 命令。此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理体系中。以是对于git是未知的。自己手动删除就好了。

  • 已经利用了 git add 缓存了代码
可以利用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃以是的缓存可以利用 git reset HEAD . 命令。
此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在利用本命令后,当地的修改并不会消散,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃当地的修改。

  • 已经用 git commit 提交了代码
可以利用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到恣意版本:git reset --hard commitid
git log 可以查看请交历史记录
cherry-pick

利用场景:对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。
这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用归并(git merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。
Git提交规范

https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html
Git同呆板配置多个Git账户,做到公私分离


  • 生成账户1的公钥:
  1. ssh-keygen -trsa -C"zhangsan@email.com"
  2. # 生成过程中记得给ssh公钥文件起个名字,如:id_rsa1
复制代码

  • 将ssh key添加到SSH agent中,
  1. ssh-add ~/.ssh/id_rsa1
复制代码

  • 生成账户2的公钥:
  1. ssh-keygen -trsa -C"lisi@qq.com"
  2. # 生成过程中记得给ssh公钥文件起个名字,如:id_rsa2
复制代码

  • 将ssh key添加到SSH agent中,
  1. ssh-add ~/.ssh/id_rsa2
复制代码

  • 配置ssh
  1. vim ~/.ssh/config
  2. # 配置如下内容:
  3. # 粘贴到config文件中
  4. #公司的git地址
  5. Host git.***.com
  6. User git
  7. Hostname git.***.com  #公司的git地址
  8. IdentityFile ~/.ssh/id_rsa1  #访问公司git的SSH KEY
  9. Port   ***  #公司的git端口
  10. Host gitee.com
  11. User git
  12. Hostname gitee.com #github的地址
  13. IdentityFile ~/.ssh/id_rsa2  #访问github的SSH KEY
复制代码
问题记录:


  • 执行****git命令时提示秘钥权限太开放Permissions 0644 for '/Users/liuml/.ssh/id_rsa_tz' are too open.** **错误信息如下:
Update failed
Warning: Permanently added 'gitee.com,..*.' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@     WARNING: UNPROTECTED PRIVATE KEY FILE!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/lisi/.ssh/id_rsa_tz' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/lisi/.ssh/id_rsa_tz": bad permissions
git@gitee.com: Permission denied (publickey).
Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决方式
可以执行以下命令将秘钥文件的权限设置为700。
  1. chmod -R 700 ~/.ssh/config ~/.ssh/id_rsa_*
复制代码

  • git****客户端 提示Load key "/home/xxx/.ssh/id_rsa.pub": invalid format
解决方式
  1. vim ~/.ssh.config  
  2. Host x.x.x.x
  3. User git
  4. IdentityFile /home/xxx/.ssh/id_rsa1 # 此处没有.pub
  5. IdentitiesOnly yes
复制代码
Git常用命令条记
转载地: https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
镜像配置

替换设置

可以直接在配置文件中动态替换 Github 的地址,这样不用每次克隆的时间都修改地址
  1. git config --global url."https://kgithub.com/".insteadOf "https://github.com/"
复制代码
测试
  1. git clone https://github.com/kubernetes/kubernetes.git
复制代码
取消设置
  1. git config --global --unset url.https://github.com/.insteadof
复制代码
查看 Git 配置信息
  1. git config --global --list
复制代码
no matching host key type found. Their offer: ssh-rsa 问题解决

修改ssh配置文件 ~/.ssh/config, 增加配置项,一劳永逸
  1. HostKeyAlgorithms +ssh-rsa
  2. PubkeyAcceptedKeyTypes +ssh-rsa
复制代码
上面配置默认对所有连接的服务器见效,也可以通过制定服务器使部分服务器见效
  1. Host 172.16.x.xHostName k8s-node001User rootPort 22HostKeyAlgorithms +ssh-rsa
  2. PubkeyAcceptedKeyTypes +ssh-rsa
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表