github基础使用

前言

将用到的github指令记录下来,持续更新,方便随时查找学习。

一、github用到的指令

1、我们从github克隆下来的代码版本一般都是master主分支,我们要建立自己的分支进行修改:

javascript 复制代码
//
  git branch  //查看目前的分支
  /*
* master //只要主分支
*/



 git branch users/cgf/feature_for_test   /#建立新的分支
 git checkout users/cgf/feature_for_test  //切换到新的分支
 git fetch   ///将代码从master分支切换到新的分支
 git pull    ///将代码从master分支切换到新的分支

 git branch //查看分支,发现有俩个分支了
 /*
  master
* users/cgf/feature_for_test
*/

2、比如在main函数里面增加一个打印,然后进行查看,将改动的代码上传到新的版本上,说一下修改了什么,最后把代码从本地分支推到远程github上。

javascript 复制代码
//
 git status //查看修改了哪些.cpp文件
 /*
	修改:     main.cpp
	*/
 git add main.cpp  //将修改的代码保存到本地分支
 
 git commit -m "Add printing" //告诉修改了哪里
 git push --set-upstream origin users/cgf/feature_for_test //同步到github上
 
 

3、git log 查看刚刚的评论

javascript 复制代码
git log
/*
commit 775d4ce10d3aaedf00af9b05968d5e18402a920b (HEAD -> users/cgf/feature_for_test, origin/users/cgf/feature_for_test)
Author: CGF <872980563@qq.com>
Date:   Sun Jun 16 21:29:54 2024 +0800

    version 1.0
 */

4、删除本地分支、上传github上的分支

javascript 复制代码
git checkout master  //先切换到其他分支
 git branch -d users/cgf/feature_for_test //删除刚刚建立的feature_for_test本地分支
 /*
warning: 将要删除的分支 'users/cgf/feature_for_test' 已经被合并到
         'refs/remotes/origin/users/cgf/feature_for_test',但未合并到 HEAD。
已删除分支 users/cgf/feature_for_test(曾为 775d4ce)。
*/

  git push -d origin users/cgf/feature_for_test //删除github上的分支
  /*
To github.com:shaoudelaochao/ImuAlignment.git
 - [deleted]         users/cgf/feature_for_test
*/
 

5、 git commit --amend:修改最新的commit评论;git push -f origin users/cgf/feature_for_test:推送到github上,如下:

javascript 复制代码
/*
commit 98b9b8911c8ba453e6e5b22b43aed5966d074051 (HEAD -> users/cgf/feature_for_test_1, origin/users/cgf/feature_for_test_1)
Author: CGF <872980563@qq.com>
Date:   Sun Jun 16 22:10:24 2024 +0800

    version 3.0   //修改前的log日志

*/

 git commit --amend //修改最新的commit
 
 /*
[users/cgf/feature_for_test_1 1646c5d] version 3.0 for test
 Date: Sun Jun 16 22:10:24 2024 +0800
 1 file changed, 1 insertion(+), 1 deletion(-)
caiganfei@caiganfei-WEI6-14-IML:~/github_test/learngit/ImuAlignment/ImuAlignment$ git log
commit 1646c5ddfb3cb24d48e8b51f7738b16863fe3a4b (HEAD -> users/cgf/feature_for_test_1)
Author: CGF <872980563@qq.com>
Date:   Sun Jun 16 22:10:24 2024 +0800

    version 3.0 for test //修改后的log日志
*/

git push -f origin users/cgf/feature_for_test //将修改的commit推送到github上

 git rebase -i HEAD~3   //将3个commit合并到一起
 
 /*
pick 4b49d4f version 1.0
s 44694b0 version 2.0 for test
s 27e3a73 version 3.0 for test

# 变基 3c21492..27e3a73 到 3c21492(3 个提交)
#
# 命令:
# p, pick = 使用提交
# r, reword = 使用提交,但修改提交说明
# e, edit = 使用提交,但停止以便进行提交修补
# s, squash = 使用提交,但和前一个版本融合
# f, fixup = 类似于 "squash",但丢弃提交说明日志
# x, exec = 使用 shell 运行命令(此行剩余部分)
# d, drop = 删除提交
#
# 这些行可以被重新排序;它们会被从上至下地执行。
#
# 如果您在这里删除一行,对应的提交将会丢失。
#
# 然而,如果您删除全部内容,变基操作将会终止。
#
# 注意空提交已被注释掉
 */
 


/*
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
## //将3个commit合并到一起,注意是合并到一起,仍然时3个log,不能删除其中的log,删除之后相应的代码也删除了。

~~ 

    version 1.0
    
    version 2.0 for test     合并后的commit
    
    version 3.0 for test

*/

 git push -f origin users/cgf/feature_for_test//改完之后同样推送到远程github上
 /*
commit 27e3a734fdffc62091205f78373286e33609c34d (HEAD -> users/cgf/feature_for_test_1, origin/users/cgf/feature_for_test_1)
Author: CGF <872980563@qq.com>
Date:   Sun Jun 16 22:10:24 2024 +0800

    version 3.0 for test   
  合并的前的commit
commit 44694b03db7a93c7cc4866d250d16fcbfa2d966a
Author: CGF <872980563@qq.com>
Date:   Sun Jun 16 22:09:00 2024 +0800

     version 2.0 for test

commit 4b49d4f3b6f2ec8ae640d545861b141b0eb171c4
Author: CGF <872980563@qq.com>
Date:   Sun Jun 16 21:29:54 2024 +0800

    version 1.0

commit 3c21492dd15c489fe0c3e2a6a300660198260f57 (origin/master, origin/HEAD, master)
Author: shaoudelaochao <872980563@qq.com>
Date:   Wed Oct 19 23:34:38 2022 +0800

    imu alignment
*/



/*
[分离头指针 b58b9d2] version 1.0
 Date: Sun Jun 16 21:29:54 2024 +0800
 1 file changed, 4 insertions(+), 1 deletion(-)
Successfully rebased and updated refs/heads/users/cgf/feature_for_test_1.
caiganfei@caiganfei-WEI6-14-IML:~/github_test/learngit/ImuAlignment/ImuAlignment$ git log
commit b58b9d24b40501c10ac1d7746628100af82cfdcc (HEAD -> users/cgf/feature_for_test_1)
Author: CGF <872980563@qq.com>
Date:   Sun Jun 16 21:29:54 2024 +0800

    version 1.0
    
     version 2.0 for test     合并后的commit
    
    version 3.0 for test

commit 3c21492dd15c489fe0c3e2a6a300660198260f57 (origin/master, origin/HEAD, master)
Author: shaoudelaochao <872980563@qq.com>
Date:   Wed Oct 19 23:34:38 2022 +0800

    imu alignment
*/

6、保存当前改动的代码:

javascript 复制代码
git stash save "test 20240616"  //将改动的代码暂时保存
/*
保存工作目录和索引状态 On users/cgf/feature_for_test_1: test 20240616
*/

 git stash list  //查看保存的版本
 
 /*
stash@{0}: On users/cgf/feature_for_test_1: test 20240616
*/

 git stash apply stash@{0}  //恢复版本

```
相关推荐
小小工匠1 小时前
ElasticSearch - 深入解析 Elasticsearch Composite Aggregation 的分页与去重机制
elasticsearch·composite·after_key·桶聚合分页
风_流沙1 小时前
java 对ElasticSearch数据库操作封装工具类(对你是否适用嘞)
java·数据库·elasticsearch
szxinmai主板定制专家1 小时前
【国产NI替代】基于FPGA的32通道(24bits)高精度终端采集核心板卡
大数据·人工智能·fpga开发
TGB-Earnest3 小时前
【py脚本+logstash+es实现自动化检测工具】
大数据·elasticsearch·自动化
大圣数据星球5 小时前
Fluss 写入数据湖实战
大数据·设计模式·flink
suweijie7685 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
油泼辣子多加10 小时前
2024年12月18日Github流行趋势
github
hunteritself10 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
Data跳动10 小时前
Spark内存都消耗在哪里了?
大数据·分布式·spark