git操作笔记

前言

以前git用的不多,所以很多操作不清楚,这里记录一些日常遇到的一些问题。问题吧,不记录一下过一段时间又忘了,忘了还得查,麻烦的要死。先记录问题,问题以现象为主。

题外话,在win平台下使用命令行操作git的时候,最好是使用git bash,如果直接使用cmd或者IDE下的terminal,有可能会出现这样或者那样的小问题。

问题

1. 怎么在github上创建一个自己的项目?

2. 编写完代码后,提交代码到远程仓库的流程?

3. git add 添加后后悔了,想撤销?

4. git commit提交后后悔了,想撤销?

5. 远程分支不想要了,想要删除怎么办?

6. 远程分支删除后,又想找回来怎么办?

7. 本地分支被改的乱七八糟,想要重新来怎么办,删掉它重新再拉取一个

8. github怎么打tag

9. 怎么知道自己是分支是从哪个分支拉出来的?

10. commit后想修改commit信息?

记录

1. 怎么在github上创建一个自己的项目?

a. 自己电脑上执行命令ssh-keygen,一路回车,会在用户目录下的.ssh目录中生成两个文件,id_rsa(私钥),id_rsa.pub(公钥)。

b. 将公钥文件中的内容拷贝到github中,具体路径为:头像-->SSH and GPG keys-->New SSH key,粘贴进去。

c. github中new一个仓库,填上项目名,点击创建。刷新出来的页面里的操作可以直接粘贴到本地操作,看你喜欢哪一款了。如果是创建一个新的项目,则本地需要先创建一个文件夹,在文件夹所在目录下执行刚才从github中复制的命令。

2. 编写完代码后,提交代码到远程仓库的流程?

首先,这个问题下,我平时是命令和ide混用的,我觉得idea/goland用来提交代码也是很方便,尤其是在看代码改动的时候,一边看一边调整也很香。命令也有有点,比如,在文件很多的项目中,新添加了一个文件,但是忘记add了,那么使用ide推送修改到远程的时候,这个文件很容易就会忘记提交,那执行下面的这些命令前先git status看一下改动了什么就不容易忽略掉了。

a. git add filename/foldername,添加文件/文件夹(暂存区)

b. git commit -m 'comment',提交刚才添加的众多文件到本地仓库(本地仓库)

c. git push,将刚才提交的代码提交到远程仓库(远程仓库)

 

3. git add 提交后后悔了,想撤销?

执行git status后看到如下:

 所以可以执行git restore --staged filename/foldername来撤销刚才的add。

 

4. git commit提交后后悔了,想撤销?

在push代码的时候会遇到这样一种情况,在要commit后push前看到一处代码改动有错误,想撤回提交,在IDE里的现象就是本来蓝色的改动文件已经变黑了,但是还没有push到远程,代码只存在与本地仓库中。这时应该使用git reset命令,这个命令用于版本回退。

git reset [--soft | --mixed | --hard]   分支

使用git reset的时候需要先明白,是要保留前面commit的代码还是放弃commit的代码,这也涉及到git reset的三个参数。这里参考了文档1。

a. git reset --hard HEAD^   回退到HEAD分支前的一个分支,commit的修改也全部放弃了,直观上看就是,命令执行完,代码没了。

b. git reset --mixed HEAD^   回退到HEAD分支前的一个分支,commit的修改保留在文件中,直观上看就是,命令执行完,使用git status看发现修改的文件以红色的形式被列了出来(未add)。--mixed可以不写,为默认。

c. git reset --soft HEAD^   回退到HEAD分支前的一个分支,commit的修改保留在文件中,直观上看就是,命令执行完,使用git status看发现修改的文件以绿色的形式被列了出来(已add,未commit)。

 

5. 远程分支不想要了,想要删除怎么办?

创建分支的时候手滑了,写错了名字,想删除怎么办?执行下面的命令:

git push origin --delete 分支名

 

6. 远程分支删除后,又想找回来怎么办?

远程分支如愿删除了,但是又想留着它了该怎么办呢?首先本地分支要留着,我们知道git是分布式版本管理工具,本地的代码留着就相当于代码并没有丢,同步到远程仓库就好了,可以执行下面的命令:

git push origin --set-upstream  分支名

查看一下远程仓库,分支回来了,真好。

 

7. 本地分支被改的乱七八糟,想要重新来怎么办,删掉它重新再拉取一个

本地仓库的分支代码被改的乱七八糟,不知道哪里是对的哪里是错的,有时候就想着把这个分支删掉,再重新拉取一遍。或者这个分支就不想要了,删除完远程分支后,本地分支也想删除,可以执行下面的命令:

git branch -D 分支名

注意,在执行上面的命令的时候要先切换到其他的分支。好了,现在本地分支已经删除掉了,再执行下命令 git checkout分支名,分支又回来了,真好。

 

8. github怎么打tag

git tag v1.0

git push origin v1.0

 

9. 怎么知道自己是分支是从哪个分支拉出来的?

比如,从master拉取一个 origin-test分支,后来忘了是从哪里拉的,下面的语句就可以很方便知道:

git reflog --date=local | grep origin-test  

 

 10. commit后想修改commit信息?

参考:https://docs.github.com/cn/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message

修改最近一次提交的提交信息,其本质是替换:

1. git commit --amend, 在弹出框中修改提交信息

2. push --force-with-lease

 

Updating...

参考:

1.  https://www.jianshu.com/p/c2ec5f06cf1a

2. https://docs.github.com/cn/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/changing-a-commit-message

posted @ 2021-07-05 23:24  不吃陈皮  阅读(80)  评论(0编辑  收藏  举报