git使用经验

1.切换分支

git branch -a  查看分支
//切换分支  -b会创建分支

git checkout -b dev_base    origin/dev_base

2.在github中创建代码库

https://guides.github.com/activities/hello-world/

ssh-keygen的时候,自己可以配置生成的文件位置,比如 /usr/ywy/rsa_id ,注意是文件,不是文件夹位置

ssh-keygen -t rsa -C "xxxxx@xxxxx.com"

这里的 xxxxx@xxxxx.com 只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱

git config 设置用户名密码什么的,不设置也不影响, user也可以不设置

ssh-keygen生成的公钥 *.pub放到git上,私钥id_rsa放置到本地,通过私钥验证权限,这样每次下载和上传文件就可以免密码了

git默认使用~/.ssh 目录下的id_rsa,如果要在本地git能够配置多个不同的远程仓库,可以在~/.ssh 目录下
创建config文件

Host github.com                 
    HostName github.com   
    IdentityFile C:\\Users\\yuwenying\\.ssh\\id_rsa_github
    PreferredAuthentications publickey
    User yuwenying
    
Host git.xxxx.cn                 
    HostName git.xxxx.cn  
    IdentityFile C:\\Users\\yuwenying\\.ssh\\id_rsa
    PreferredAuthentications publickey
    User yuwenying

写一个案例:

比如我的windows用户默认的用户名是admin,但是git的账户名是xiaoyu,我配置了免密ssh 登录,执行git clone ssh://mygitlab.com:29418/xxx 会报如下错误,因为默认使用当前的系统名admin登录了

Cloning into 'xxx'...
admin@mygitlab: Permission denied (publickey).
fatal: Could not read from remote repository.

可以在C:\Users\admin\.ssh中添加一个config文件(私钥也在这个目录下) 

注意Host 是不能乱命名的,要与git clone ssh://mygitlab.com:29418/中的域名一致

Host mygitlab.com 
    HostName mygitlab.com
    Port 29418      
    User xiaoyu
    IdentityFile C:\Users\admin\.ssh\id_rsa

3.centos中安装git

出现错误: usr/bin/perl Makefile.PL PREFIX='/usr/local/git' INSTALL_BASE='' --localedir='/usr/local/git/share/locale'Can't locate ExtUtils/MakeMaker.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 3.

解决方法: yum install perl-ExtUtils-MakeMaker package

4.TortoiseGit提交代码

其实就是要在客户端生成一个私钥,并将公钥在github上配置一下

Git学习:利用Git和TortoiseGit把代码传输到网络服务器 - 用心计较般般错 安心自守事事宽 - 博客园

每次Git clone 和push 都要输入用户名和密码。虽然安全,但在本机上每次都输有些麻烦,如何记住用户名和密码呢?

在网上看了各种方法,太杂,很多可能环境不一样,一直行不通。最后找到一种有效的方法,很简单。记录下来!

当你配置好git后,在C:\Documents and Settings\Administrator\ 目录下有一个  .gitconfig 的文件,里面会有你先前配好的name 和email,只需在下面加一行

[plain] view plain copy  在CODE上查看代码片派生到我的代码片

  1. [credential]      
  2.     helper = store   

下次再输入用户名 和密码 时,git就会记住,从而在C:\Documents and Settings\Administrator\ 目录下形成一个  .git-credentials 文件,里面就是保存的你的用户名和密码。

5.tortoisegit clone代码的时候url填写http的URL,别填ssh的,

http://10.77.144.192:11824/platform_inf/XXXX

6.码云中国:

填入密码和用户名是 注册邮箱 ,码云密码

7.git 获取指定版本(会自动切换到该分支下)

git clone --branch v0.7.1  https://github.com/micro/protoc-gen-micro.git

git下载指定commit(sha)代码:
git clone 代码
git checkout 925541529c1fa6821df4e44ce2723319eb2be768(可以使用git log查看本地代码的提交记录,从而找到sha)

8.常用命令

在拉取代码的时候最好使用git pull --rebase,以免merge之后产生很多分支,不方便代码回滚

rebase详解: 为什么要使用git pull --rebase? - 简书

git pull
git add 文件名 提交修改内容与提交新文件是一样的两步 git add 文件名
git commit -m ""
git push

【Git】Git 本地的撤销修改和删除操作 - QiaoZhi - 博客园

9.快速把本地未提交的修改撤销掉,恢复文件和git服务器一致

git checkout .

10.

git submodule update --init --recursive

11.撤销add / commit

git reset HEAD <路径/文件名> 就是对某个文件进行撤销了commit
(1)把最后的commit切回Changes to be committed状态,使用命令:
git reset --soft HEAD^
注意:Windows系统需要在^符号后面两边加上引号,如:
git reset --soft HEAD"^"

再撤销为没有 add的状态

git reset HEAD

电脑用户名和git用户名不一样的时候,ssh需要加一个名称

git clone -b dev ssh://<你的域账号******>(如xiao.ywy)@test.com:29418/xxx

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值