git 常用操作整理

原创 controlling 随笔 git 125阅读 2019-04-28 10:13:05 举报

克隆项目

通过https克隆:

server为ssh-key git@...或者https://...

临时存储

临时存储,不提交

查看临时存储列表

释放临时存储

默认释放最近一次临时存储:

指定释放的临时存储:

stash@{2}是临时存储的索引,可以通过$ git stash list查看。

区别:

执行$ git stash apply,记录仍在list中;
执行$ git stash pop,记录从list中清除。

清空临时存储列表

提交

查看变更状态

一般仓库中的文件可能存在于这三种状态:

  • Untracked files → 文件未被跟踪,即没有add的文件
  • Changes not staged for commit → 被改动的文件未暂存
  • Changes to be committed → 被改动的文件已暂存待提交

放弃本地修改

处于“Changes not staged for commit → 被改动的文件未暂存”状态的文件:

“.”表示所有

处于“Changes to be committed → 被改动的文件已暂存待提交”状态的文件:

撤销所有untracked文件的改动,但不撤销已经tracked文件的改动:

撤销已经tracked文件的改动,但不撤销所有untracked文件的改动:

【要撤销到的某次提交的ID】可以通过$ git reflog$ git reflog 分支名查看,形式:HEAD@{3}、分支名@{3}。

退出日志查看,“Q”键。

保留暂存区,只回退提交信息:

查看变更详情

暂存文件

提交暂存

合并暂存和提交操作

拉取远端

默认拉取跟踪的远端分支:

拉取远端指定仓库的指定分支:

推送到远端

默认推送到跟踪的分支:

推送到远端指定仓库的指定分支:

分支

查看分支

切换分支

rebase变基

变基且修改commit

如果需要把master分支的第二次提交与首次提交合并,使用前两条命令会报错,需使用第三条命令。

进入vim模式:
image【图片来源于网络】
上下键移动光标至pick(从上到下依次显示了当前分支第一次commit到最后一次commit,必须至少保留一次commit)
英文输入状态下,敲下“S”键,进入编辑状态:

p,pick = 使用此提交

r,reword = 使用此提交,但是重新编辑提交信息

e,edit = 使用此提交,但是停止修订

s,squash = 使用此提交,但是合并到上一个提交

f,fixup = 类似“squash”,但是删除此次提交的日志信息

x,exec = 运行命令使用shell

“Esc”键退出编辑模式,:wq保存编辑并退出,回车进入下一步操作,双击“D”键,删除某一行commit,最后$ git push -f推送代码。

rebase解决冲突后

中断rebase操作

找回$ git rebase -i后丢失的commit

执行$ git rebase -i操作后,commit记录丢失,执行$ git reflog,会显示git上的所有提交记录。

merge合并分支

中断merge操作

合并某分支的某次提交到本分支(通常用于hot fix)

如果有冲突,解决冲突后

解决冲突

rebase和merge等整合分支的操作都又可能产生代码冲突,打开存在冲突的文件,会看到如下标志:

最好是手动对比,删除旧代码,保留新代码,解决完冲突后提交。

操作远端仓库

获取远端仓库代码

不加仓库名,默认拉取所有远端仓库。

查看远端仓库

添加远端仓库到本地

server为ssh-key git@...或者https://...

设置标签

创建标签

查看所有标签

查看日志

修改远程仓库地址(代码迁移)

本地保存https用户名和密码

  • 配置用户变量HOME,值%USERPROFILE%,即C:\Users\Administrator
  • 新建文件_netrc,内容为:

或者修改.gitconfig文件内容:

配置ssh

生成ssh

会在C:/Users/xxx/文件夹下生成包含以下三个文件的.ssh/文件夹:

  • id_rsa 私钥
  • id_rsa.pub 公钥
  • known_hosts

git上配置公钥。

image【图片来源于网络】

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复