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/分支名
更新远程代码至本地
- 查看远程分支
git remote -v
- 从远程获取最新版本到本地
# 在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git fetch origin master:temp
- 比较本地仓库与下载的temp分支
# 比较本地代码与刚刚从远程下载下来的代码的区别
git diff temp
# “按q” 可以退出 git diff 模式!
- 分支合并
git merge temp
- 删除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
移除远程仓库某个文件夹或单个文件
- 比如src/product文件夹
git rm -r --cached "src/product" # --cached不会把本地的文件删除git rm test.txt # 删除单个文件
- 提交到本地
git commit -m "delete src/product dir"
- 提交到远程服务器
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。
- 使用
git log看一下当前分支的提交情况,下图中有三个commit点:add 1 line,add 2 line,add 3 line
- 开始合并(上图中
commit后面的一长串就是提交的唯一标识号码,我们rebase至add 1 line对应的位置)
git rebase -i 2fc2f5e650f239b3d151da81d227b199fc852e1d # “add 1 line”对应的hash值,也称之为“commitId”
- 进入到 vi 编辑模式
Tips:
- 进入 vi 模式后,在键盘上敲i键进入 insert 模式
- pick:保留这个 commit
- squash:这个 commit 会被合并到前一个 commit
我们需要将add 3 line这个commit合并到前一个commit,也就是合并到add 2 line的commit中,即修改成:

- 修改完成后,按esc键,输入:wq并回车进行保存。之后会继续跳转到 commit message 的编辑界面
- 修改信息,注释中有写第一个commit信息和第二个commit信息,现在需要你合并这两个信息成一个commit信息
- 保存退出,跳回到最初的命令界面
- 至此,我们已经完成了commit的合并,输入
git log,你将只看到This is a combination of 2 commits.和add 1 line两个commit!
修改commit信息
与“合并commit”操作相差不大
1.修改最近一次的commit
git commit --amend
2.修改其他的commit
- 首先我们有3个commit,如下:
- 我们修改第2次commit,即“2”,命令如下:
git rebase -i 7984f3ab1c5d5aac769be1aa5d39db5c91379caa
- 输入命令后,界面如下:
- 把要修改的commit信息的那行的
pick改为reword,按i进入编辑模式,修改后依次按:wq,回车
- 进入修改commit信息的界面,编辑信息后依次
esc:wq保存退出
- 再次git log 就可以看到成果了!
删除历史提交记录
注意: 在进行此操作之前,保证你的代码都保存了,或者说你不再需要当前代码的更改,否则你辛辛苦苦写的代码就没了!!!
一般会有两种情况:
- git add 跟踪了,可以适当找回代码
- 未跟踪,万劫不复(灬ꈍ ꈍ灬)
git log# 获取提交的历史,并找到"需要回滚到"的提交点的hash值git reset --hard commit_hash # 复制的hash值git push origin HEAD --force
清空所有commit记录
- 新建分支并切换
git checkout -b test # test为新分支名字
- 添加所有文件
git add .
- 提交更改
git commit -m "commit message"
- 删除主分支
git branch -d master
- 将当前分支重命名为master
git branch -m master
- 最后,强制推送!
git push -f origin master
替换本地改动
假如你做错事(自然,这是不可能的),你可以使用如下命令替换掉本地改动:
此命令会使用 HEAD 中的最新内容替换掉你的工作目录中的文件。已添加到缓存区的改动,以及新文件,都不受影响。
git checkout --
假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:
git fetch origingit reset --hard origin/master

浙公网安备 33010602011771号