git 学习

148 阅读2分钟

git checkout

两种创建分支方式

远程已经有了分支。拉到本地

  • git checkout -b base-feature origin/featureBranch // 自己创建的分支名称 对应的远程分支名称

本地创建好分支,然后推送到远程

创建切换本地分支

  • git checkout -b base-feature

推送到远程

git push <远程主机名> <本地分支名>:<远程分支名>

  • git push origin base-feature:featureBranch // 注意冒号前面是本地分支

git log

使用 --grep 就可以查询关键字

  • git log --grep 关键字 --oneline

git stash

暂存当前工作区的文件 还没有git add 的或者add 后没有commit 的

  • git stash

如果想要给暂存的命名

  • git stash save 名称

查看所有暂存文件

  • git stash list

切出暂存的文件

切出暂存的最近一条的文件

  • git stash pop

切出指定的一条。利用apply

  • git stash apply index // git stash apply 0

git reset

默认值 ,撤销commit,撤销add., 不删除代码

  • git reset HEAD1 / git reset --mixed HEAD1

撤销commit, 不删除代码,不撤销add

  • git reset --soft HEAD~1

撤销commit. 撤销add,删除代码

  • git reset --hard HEAD~1

git revert

  • 与git reset 区别是会生成一条commit 记录

git remote

如果想要合并两个仓库地址代码,可以使用

下面给出操作步骤

  • git remote

git remote add 仓库别名 仓库地址

  • 获取到所有分支

git fetch 仓库别名

  • 进行分支合并

git merge 分支名称

如果提示不允许合并 , 则添加 --allow-unrelated-histories 参数

cherry-pick

如果想要合并某一次的提交,可以利用cherry-pick

  • git remote add 名字 地址
  • git fetch xxx 拉取
  • git cherry-pick commitID

修改commit提交信息

修改最近一次的commit 信息,如果要修改最后一个commit 就可以使用这个

  • 利用git commit --amend

修改多条commit 信息

  • git rebase -i HEAD~3 // 从当前开始后面三条
  • git rebase -i commitID // 这个commitID之前的所有commit,不包含这一条

然后会出现commit 列表,初始化的是 pick 开头,将要修改的那一条记录修改为edit 开头保存,根据提示执行

  • git commit --amend

发现当前要修改的commit 注释就是改为edit 的那一条,修改保存,然后执行continue 直到完成

  • git rebase --continue

提示Successfully rebased and updated修改成功,强制推送

  • git push -f

合并多条commit 信息

  • git rebase -i commitID

  • 将要合并的pick 改为squash

  • git rebase --continue

配置ssh

先要设置git 账号密码

生成ssh key

拷贝ssh 到代码仓库