十二条git实用总结

本文总结了常见的十二个git使用场景的处理方法,足够应对日常学习工作中对git的使用

git命令


1.添加SSH验证免登陆

在用户文件夹下观察是否存在.ssh文件夹,如果存在,并且其中包含id_rsa.pub和id_rsa两个文件,直接执行第二步,否则执行以下命令:

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

在github的主页,进入settings界面,进入SSH and GPG Keys选项卡,添加一个新的SSH Key,并将上一步生成的id_rsa.pub(也就是ssh的公匙)复制到对应位置,保存即可。

检查远程仓库地址是否为SSH模型的地址,如果为HTTPS模式,则仍需要输入密码,但是现在github不再开放通过用户名和密码的登录方式。

2.将本地项目上传GitHub

2.1.如果是新项目,本地还没有代码

git init

2.2.如果想直接使用远程的代码

git clone <远程仓库地址>

然后直接在该项目中修改

2.3.如果是一个本地开发的项目,想要上传到GitHub

首先新建GitHub仓库

然后添加远程仓库

git remote add origin 仓库地址 

如果GitHub上添加了readme.md文件或者.ignore文件,意味着在GitHub上已经存在了一个独立的git树,需要在拉取的时候将本地Git树和远程Git树融合。

git pull origin <想要操作的分支> --allow-unrelated-histories

如果存在冲突,则先解决冲突,并提交一个merge版本

将新的代码上传到github,-u用于指定新的版本

git push -u origin 想要操作的分支
  1. 如果添加错了,可以remove掉远程库,要使用本地名称(一般使用origin)remove掉
git remote -v 查看远程仓库地址

git remote rm origin

3.本地分支管理

指令 作用
git branch -a 查看所有分支
Git branch <分支名> 新建指定分支
Git branch -d <想要删除的分支> 删除指定分支
Git branch -M <新的分支名> 修改当前分支名称
git branch -v 查看远程分支
git branch -m old new 重命名

4.从远程拉取一个本地不存在的分支

git checkout -b 本地分支名 origin/远程分支名

5清除已有的修改

5.1 情况一:工作区有修改,暂存区未暂存,还原到上次提交

git checkout [--] <文件名>

--的作用是表明后面的是文件名而不是分支,因为git checkout还有切换分支的作用,可以不加

位置 情况一 执行后
工作区 Version1 Version0
暂存区 version0 Version0
上一次提交 Version0 Version0

5.2.情况二:工作区有修改,已提交暂存区,想舍弃暂存

git reset [--hard] [HEAD] <文件名>

(丢弃暂存区的更改,不修改工作区,执行后会提示工作区的修改情况)

位置 情况一 执行后
工作区 Version1 Version1
暂存区 Version1 Version0
上一次提交 Version0 Version0

5.3.情况三:工作区有修改,提交暂存区后,又进行了后续修改,想退回到暂存区的状态

git checkout [--] <文件名>
位置 情况一 执行后
工作区 Version2 Version1
暂存区 Version1 Version1
上一次提交 Version0 Version0

5.4.情况四:工作区有修改,提交暂存区后,想要回退到上一次提交时的状态

git reset [--hard] [HEAD] <文件名>
git checkout [--] <文件名>
位置 情况一 执行后
工作区 Version1/version2 Version0
暂存区 Version1 Version0
上一次提交 Version0 Version0

6.取消文件跟踪

修改.ignore文件,增加要忽略的文件

git rm -r --cached <文件名>

可以直接执行一次提交,或者跟随下一次代码修改一起提交

git add .

git commit -m “你的注释”** 

7.退出编辑模式

在merge的时,完成merge操作后会进入一个编辑页面,编写merge记录,和vim的操作方式是一样的,一般我们都会直接退出

  1. 按键盘上的i键可进入插入模式
  2. 这时可以修改最上方的黄色部分,改成你想写的合并原因
  3. 按键盘上的Esc键退出插入模式
  4. 最后在最下面输入:wq后按回车键即可

8.版本回退

 git reset --hard HEAD^

完全切换到其他版本, HEAD^ 指上一个版本, HEAD^^ 指上上个版本,可以查看log确定回退的版本

9.缓存修改

有些修改未完成,想保存修改,使用 git stash 命令
一定一定要记得add!!!!,否则你没有add的代码将会消失!!!!

命令 作用
Git stash save "缓存信息" 缓存修改
Git stash list 查看缓存列表
Git stash pop [stash@{num}] 弹出缓存
Git stash drop [stash@{num}] 删除缓存

10.利用码云下载GitHub项目

github在国内的clone的速度较慢,比较快的方法时使用码云,先fork到码云上,再从码云上clone到本地,然后修改.git文件夹下的config文件,将origin地址改为github上的地址

11.关于SSL和超时错误

都是因为网路问题,切换VPN或者多尝试几次一般就好了。

12.merge出现问题,将回退到merge之前的状态

git reset .
git add .
git stash save "message"
git stash drop

13.强制结束merge

提示:All conflicts fixed but you are still merging

rm -rf .git/MERGE

14.GitHub合作

首先需要在GitHub仓库的Settings中邀请合作者

当合作者同一邀请后才能提交代码。

只在自己的分支上编写代码

15.添加tag

添加tag,主要用于标记版本

git tag -f <tag名>

将tag上传到github

git push --tags

16.关闭Git Warning: LF will be replaced by CRLF

git config --global core.autocrlf false

17.合作标准流程

  1. 在branch-a分支上执行git pull branch-a

  2. 更新私人分支代码

  3. git push branch-a (推送私人分支)

  4. git checkout dev (切换到开发汇总分支)

  5. git pull dev (拉取开发汇总分支)

  6. git merge branch-a (融合私人分支),如有冲突解决冲突,然后 git add, git commit

  7. git push dev (推送开发分支)

  8. git checkout branch-a (切换私人分支)

  9. git merge dev (融合合并好的开发会中分支)

最后,多使用IDE提供的git工具,少自己写命令(容易写错www)

posted @ 2021-05-27 15:04  天空树快递  阅读(49)  评论(0编辑  收藏  举报