Git常用命令总结

更换远程绑定仓库

方法一 、通过命令直接修改远程地址

git remote # 查看所有远程仓库,只会列出简短的名字
>> origin
------------------------------------------
git remote -v # 名字 + 地址
>> origin  https://github.com/YourName/ProjectName.git (fetch)
>> origin  https://github.com/YourName/ProjectName.git (push)
------------------------------------------
git remote set-url origin 远程仓库地址

方法二 、通过命令先删除再添加远程仓库

git remote # 查看所有远程仓库
git remote rm origin(仓库名)
git remote add origin 远程仓库地址

方法三 、直接修改配置文件

# 进入/.git
vim config 

[core] 
repositoryformatversion = 0 
filemode = true 
logallrefupdates = true 
precomposeunicode = true 
[remote "origin"] 
url = 远程仓库地址	 # 修改url即可
fetch = +refs/heads/*:refs/remotes/origin/* 
[branch "master"]
remote = origin 
merge = refs/heads/master1234567891011121314

更换远程绑定分支

# 查看远端主机详细配置信息
git remote show origin

# 修改关联
git branch --set-upstream-to origin/分支名

更新远程代码至本地

  1. 查看远程分支
git remote -v
  1. 从远程获取最新版本到本地
# 在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git fetch origin master:temp
  1. 比较本地仓库与下载的temp分支
# 比较本地代码与刚刚从远程下载下来的代码的区别
git diff temp

# “按q” 可以退出 git diff 模式!
  1. 分支合并
git merge temp
  1. 删除temp分支
git branch -d temp

将本地代码推送到远程

# 1.初始化版本库git init# 2.添加文件夹下所有文件到缓存区git add .# 3.把添加的文件提交到版本库,并填写提交备注(必不可少)git commit -m "update readme"# 4.把本地库与远程库关联git remote add origin 你的远程库地址# 5.第一次推送代码时:git push -u origin master# 之后可以直接用如下命令推送git push origin master

移除远程仓库某个文件夹或单个文件

  1. 比如src/product文件夹
git rm -r --cached "src/product" # --cached不会把本地的文件删除git rm test.txt # 删除单个文件
  1. 提交到本地
git commit -m "delete src/product dir"
  1. 提交到远程服务器
git push -u origin master 

如果误提交的文件夹比较多,直接修改.gitignore文件,将不需要的文件过滤掉,然后执行如下命令

git rm -r --cached .git add .git commit -m "commit message"git push -u origin master

合并多个commit成一个commit

需求:把add 2 line,add 3 line这两个commit合并成一个commit。

  1. 使用git log看一下当前分支的提交情况,下图中有三个commit点:add 1 line,add 2 line,add 3 line
image-20200220150123146
  1. 开始合并(上图中commit后面的一长串就是提交的唯一标识号码,我们rebaseadd 1 line对应的位置)
git rebase -i 2fc2f5e650f239b3d151da81d227b199fc852e1d # “add 1 line”对应的hash值,也称之为“commitId”
  1. 进入到 vi 编辑模式
image-20200220150151539

Tips:

  1. 进入 vi 模式后,在键盘上敲i键进入 insert 模式
  2. pick:保留这个 commit
  3. squash:这个 commit 会被合并到前一个 commit

我们需要将add 3 line这个commit合并到前一个commit,也就是合并到add 2 line的commit中,即修改成:

image-20200121210903918

  1. 修改完成后,按esc键,输入:wq并回车进行保存。之后会继续跳转到 commit message 的编辑界面
image-20200220150700269
  1. 修改信息,注释中有写第一个commit信息和第二个commit信息,现在需要你合并这两个信息成一个commit信息
img
  1. 保存退出,跳回到最初的命令界面
image-20200121211226419
  1. 至此,我们已经完成了commit的合并,输入git log,你将只看到This is a combination of 2 commits.add 1 line两个commit!

修改commit信息

与“合并commit”操作相差不大

1.修改最近一次的commit

git commit --amend

2.修改其他的commit

  1. 首先我们有3个commit,如下:
image-20200220143229879
  1. 我们修改第2次commit,即“2”,命令如下:
git rebase -i 7984f3ab1c5d5aac769be1aa5d39db5c91379caa
  1. 输入命令后,界面如下:
image-20200220143716779
  1. 把要修改的commit信息的那行的pick改为reword,按i进入编辑模式,修改后依次按:wq,回车
image-20200220144240889
  1. 进入修改commit信息的界面,编辑信息后依次esc :wq 保存退出
image-20200220144433747
  1. 再次git log 就可以看到成果了!
image-20200220144601382

删除历史提交记录

注意: 在进行此操作之前,保证你的代码都保存了,或者说你不再需要当前代码的更改,否则你辛辛苦苦写的代码就没了!!!

一般会有两种情况:

  1. git add 跟踪了,可以适当找回代码
  2. 未跟踪,万劫不复(灬ꈍ ꈍ灬)
git log# 获取提交的历史,并找到"需要回滚到"的提交点的hash值git reset --hard commit_hash # 复制的hash值git push origin HEAD --force

清空所有commit记录

  1. 新建分支并切换
git checkout -b test # test为新分支名字
  1. 添加所有文件
git add .
  1. 提交更改
git commit -m "commit message"
  1. 删除主分支
git branch -d master
  1. 将当前分支重命名为master
git branch -m master
  1. 最后,强制推送!
git push -f origin master

替换本地改动

假如你做错事(自然,这是不可能的),你可以使用如下命令替换掉本地改动:

此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。

git checkout --

假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:

git fetch origingit reset --hard origin/master
posted @ 2021-08-30 20:06  Tbthr  阅读(94)  评论(0)    收藏  举报