git使用笔记

本文介绍如何配置SSHKey以便简化GitHub上的Git操作,并提供了一系列Git常用命令,包括基本的仓库管理、文件操作、分支管理和冲突解决等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置SSH KEY

        SSH KEY的配置不是必须的,不配置的话我们就只能使用HTTPS协议,这样每次提交时要输入用户名密码,略麻烦,所以还是配置一下。配置SSH KEY的原理很简单,采用非对称加密方式生成公钥和私钥,公钥告诉GitHub,私钥留在自己电脑上(私钥不可泄露),当我们向GitHub上提交数据时,GitHub会用我们留给它的公钥加密一段消息返回给我们的电脑,如果我们能够用私钥解密成功,说明是合法的用户,这样就避免我们输入用户名密码了。

1.查看本地是否已有SSHKEY

当前用户目录下执行:ls -la 查看是否有.ssh文件夹,如果有即已生成过。

2.生成SSH指纹

生成SSH指纹: ssh-keygen -t rsa -b 4096 -C "你的github用户名"

生成的公钥文件路径:~/.ssh/id_rsa.pub

4.将公钥告诉GitHub

登录GitHub,点击右上角的向下的箭头,选择Settings,在新打开的页面中左边侧栏选择SSH and GPG keys,如下:

如何关联本地仓库和远程仓库?

1、本地创建文件夹(如temp);

2、进入temp文件夹下,cd temp;执行git init操作;

3、将本地仓库和远程仓库关联;git remote add origin git@github.com:'你的github用户名'/''要关联的仓库名'.git';

4、拉取远程仓库代码到本地;git pull origin  master;

5、本地文件推送到远程仓库;1)、git add 1.txt ;2)、git commit -m "merge:my first commit!"3)、git push -u origin master

patch生成

生成某次commit的patch:git format-patch -1 commit_id 或者 git format-patch commit_id1...commit_id2

打patch

先检查patch文件:git apply --stat newpatch.patch
检查能否应用成功:git apply --check newpatch.patch
打补丁:git am --signoff < newpatch.patch

(使用-s或--signoff选项,可以commit信息中加入Signed-off-by信息)

恢复误删除的文件或文件夹:
    git reset HEAD file(文件名或文件夹)
    git chekout file(文件名或文件夹)
查看本地修改状态:
git status
不查看untracked file:
git status -uno
只查看modified的文件:
git status | grep "modi"

rebase命令:
以branch1分支作为基线合入当前分支多于branch1分支的内容到当前分支;
git rebase develop/branch1

合并commit:

git rebase -i HEAD~2

合并最后两次commit,以倒数第二次commit为起点rebase最后一次commit;

对于 commit 合并可以使用 squash、fixup 指令,区别是 squash 会将该 commit 的注释添加到上一个 commit 注释中,fixup 是放弃当前 commit 的注释;drop丢弃某次commit;

执行过程有冲突,解决冲突以后执行git rebase --continue继续,执行git rebase --abort停止合并;

最后执行git push -f 推送到远端分支;

修改commit信息:

修改最后一次commit日志信息:

git commit --amend -m "c3"

要修改更久远的commit信息:

1)git rebase -i commitid (修改commitid之后的提交的commit信息)

2)在弹出的vim中修改要修改commit信息的commit钱将pick改为reword后保存退出;

3)在弹出的vim中修改要改为的commit信息后保存退出;

4)git push;

撤销commit:

git reset --soft HEAD~1(撤销最后一次commit)

git reset --soft HEAD~2(撤销最后两次commit)

还原git add : git restore --staged file

查看提交修改的文件列表:

git diff --name-only 76f4ccc65619f0cda40d7b2fa9f4bcf1cdf3934a e13374a780bbe40fb96e5a7d6ef3fd100c97984b

commitid1之后到commit2的改动的文件列表(不包含commitid1)

查看指定文件的log

 git log filename

可以看到fileName相关的commit记录
git log -p filename
可以显示每次提交的diff
只看某次提交中的某个文件变化,可以直接加上fileName
git show commit-id filename

基于本地分支创建新的分支并推送关联远端:

1、创建分支

git branch  personal/local/xxx

或git checkout -b personal/local/xxx

2、推送到远端

git push origin personal/local/xxx

2、关联远端分支

查看与远端分支的关联关系:

git branch -vv

git branch --set-upstream-to=origin/personal/local/xxx personal/local/xxx

丢弃本地新增的文件:

git clean -df

git diff或git log乱码问题解决:
$ git config --global core.quotepath false          # 显示 status 编码
$ git config --global gui.encoding utf-8            # 图形界面编码
$ git config --global i18n.commit.encoding utf-8    # 提交信息编码
$ git config --global i18n.logoutputencoding utf-8  # 输出 log 编码

$ git config --global  --list     #查看当前用户(global)配置

$ export LESSCHARSET=utf-8(linux) set LESSCHARSET=utf-8(win)

 最后一条命令是因为 git log 默认使用 less 分页,所以需要 bash 对 less 命令进行 utf-8 编码

windows下git bash反应慢问题解决:
$ git config --global core.preloadindex true
$ git config --global core.fscache true
$ git config --global gc.auto 256
$ export PS1='$'
 

参考链接:https://www.life2cloud.com/cn/2018/05/git-handbook/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值