关于git的用法

本文用于记录自己已知关于git的用法

git clone '仓库链接'

克隆git仓库,常用HTTPS、SSH等协议。HTTPS协议只要有链接,无需其他条件。而SSH协议,需要先上传公钥到git网站上,本地需要有对应的私钥才能克隆,方法见文章最后。

例:
git clone https://github.com/lindorx/train.git
git clone git@github.com:lindorx/train.git

git log

本命令可以打印所有commit。commit类似于一个修改信息,git中所有的改动会变成一个commit,被一个40位的“commit id”标记,然后被提交,log可以打印所有commit的提交记录。每个commit提交时都要有一个说明信息,这应该是为了明确每个改动,反正当初就是这么设计的。以下为一些我知道的用法:

#打印两个commit id之间的记录,两个id用“..”连接
git log e4c26faa426c17274884f759f708bc9ee22fd59a..5712c3ed549e0dddee096bce24df41db15cb80b5
#打印只属于主线的commit记录
git log --first-parent
#单行打印,只会打印出commit id和其标题信息
git log --pretty=oneline
#打印指定版本的commit,例如打印linux-5.8的commit
git log v5.8

git grep '字符串' [commit id]

这个命令用来在当前的库中查找指定字符串,后面可以跟上一个commit的id,可以在指定的commit中查找。

#例如在当前仓库中查找函数test()位于哪个文件
git grep "test()"

git archive 'commit id'

此命令用来将指定commit所处版本的代码导出,简单来说把指定时间的源代码打包成一个文件。

#例如打印linux-5.9的代码,打包格式为“tar.gz”,输出文件名“linux.5.9.tar.gz”
git archive --format tar.gz --output "linux.5.9.tar.gz" 856deb866d16e29bd65952e0289066f6078af773

git format-patch

导出两个commit之间的补丁

#导出两个commit之间kenel/sched文件夹下的补丁到patchs文件夹,“..”链接两个commit,“--”指定文件夹
git format-patch --first-parent -o patchs  84df9525b0c27f3ebc2ebb1864fa62a97fdedb7d..169b93899c7dfb93a2b57da8e3505da9b2afcf5c -- kernel/sched 

git show 'commit id'

展示指定commit的内容

#展示c598c8a46d01723d6445b26313717a7f315e44dd的修改
git show c598c8a46d01723d6445b26313717a7f315e44dd
#展示c598c8a46d01723d6445b26313717a7f315e44dd中Makefile文件的内容,通过“:”指定目标文件,之间不能有空格
git show c598c8a46d01723d6445b26313717a7f315e44dd:Makefile

git status

查看当前的修改记录,以确定要提交的内容

 

git add ‘文件’

提交指定文件到git缓存区

#提交所有修改
git add .
#提交文件“test.c”
git add test.c

git push

提交git缓存区的内容

 

git pull

拉取最新的仓库数据,其实就是同步

 

git config --global

用来设置用户信息,一般常用来设置用户名和邮箱

#设置git用户名
git config --global user.name "12345"
git config --global user.email "12345@163.com"

git cherry-pick 'commit-id'

将另一条分支的提交合并到当前分支


关于ssh的使用。使用如下命令生成密钥

#“12345@163.com”为邮箱
ssh-keygen -t rsa -C "12345@163.com"

此时在用户目录会产生一个“.ssh”隐藏文件夹,这个文件夹有两个文件,“id_rsa”和“id_rsa.pub”,其中“id_rsa”的内容为私钥,就是自己保留的密钥。“id_rsa.pub”的内容为公钥,需要上传到服务端,ssh进行通信是会验证这两个钥匙是不是对应的,如果不是将禁止通信,因此这个文件夹万不可删,否则得从头配置生成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值