git用法总结


Git的学习,有两个很好的资源,一个是廖雪峰的官网,这个真是浅显易懂,另一个是codecademy, 想深入学习的可以请移步过去,这里仅对常用的命令进行总结。


1. 安装

直接官网下载,安装好后开始菜单里找到”Git”->”Git Bash”, 有命令行窗口弹出,则成功。这里通常还会设置下git通用的用户名和邮箱,方法如下:

git config --global user.name "此处填写你的用户名"
git config --global user.email "你的email"

2. 创建仓库

#1. clone 一个存在的仓库:
git clone ssh://user@domain.com/repo.git

#2.创建一个本地仓库, switch到目标文件夹下,输入:
git init

3. 本地更改

#1. 添加所有当前的changes
git add .

#2.添加某一个文件
git add <file name>

#3. 添加某些文件到下次commit
git add -p <file name>

#4. 提交改动到本地分支
git commit -m "comments"

#5. 提交所有的本地changes到本地分支, 省去了git add .
git commit -a

#6.在changeID不变得情况下,覆盖上次修改的文件代码
git commit --amend

4. 提交历史查询

#1.显示所有的提交记录
git log

#2.显示某一个文件的历史记录
git log -p <file>

#3. 让log好看点
git log --pretty=oneline

#4.谁在何时改变了什么内容
git blame <file>

#5.可以查看所有分支的所有操作记录(包括提交、回退、已删除的提交操作记录等)
Git reflog

如果在回退以后又想再次回到之前的版本,git reflog 可以查看所有分支的所有操作记录(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录

5. 分支和Tag

#1.列出所有存在的分支
git branch

#2.切换到某一个分支
git checkout <branch>

#3.创建+切换分支
git checkout -b <name>

#3.基于当前分支创建一个新的分支
git branch <new-branch>

#4.基于远程分支创建一个分支
git branch --track <new-branch> <remote>

#5.删除一个本地分支
git branch -d <branch>

#6.给当前的提交打上tag
git tag <tag-name>

6. 更新和提交

#1.查看远程仓库的信息(执行该命令后,会列出当前程序对应的所有远程版本仓库的信息,含仓库名和仓库地址)
git remote -v
git remote (只是会单纯的列出所有远程仓库的名字,不会展示远程仓库的地址)

#2.显示某个远程库的信息
git remote show <remote>

#3.创建新的远程库, name, remote
git remote add <remote> <url>

#4.下载所有远程库的改动, 但是不merge到本地
git fetch <remote>

#4.下载所有远程库的改动, merge到本地
git pull <remote> <branch>

#5.push本地改动到remote
git push <remote> <branch>

#6.发布你的tags
git push --tags

7. Merge和Rebase

#1.merge 合并branch分支到当前分支

git merge <branch>

举例(把master分支合并到当前分支):

git checkout feature

git merge master

#2.rebase 把branch合并到当前分支

git rebase <branch>

举例:

git checkout feature

git rebase master

(它会把整个 feature 分支移动到 master 分支的后面,有效地把所有 master 分支上新的提交并入过来

但是,rebase 为原分支上每一个提交创建一个新的提交,重写了项目历史,并且不会带来合并提交。)

#3.解决冲突后继续合并
git rebase --continue

#4.中止rebase,回到rebase前状态
git rebase --abort

8. 回退

#1.丢弃所有本地更改 ,commit和index 都回回退到某个版本.(注意,这种方式是改变本地代码仓库源码)
git reset --hard HEAD

#2. 对某一个文件丢弃本地的更改
git checkout HEAD <file>

#3.revert一个commit (会留一个新的commit记录)
git revert <commit>

#4.reset 到commit, commit后的所有提交都被丢弃
git reset --hard <commit>

#5.reset到某个commit,同时保留所有本地的改动
git reset --keep <commit>

常见问题和解决方案

一、你有一个远程主branch,它名字是master, A和B都从master上checkout了本地分支,并创建了远程分支。 A的本地分支和远程分支都叫A, B的都叫B。A先改动了代码并成功Push到远程A, 然后通过pull request成功merge到master, 这时候B也成功push代码到B,然后建立pull request想push到master会出错,怎么解决?

1)先push本地分支的改动到远程B分支上。

(2)checkout -b c master 从最新的远程主分支check out一个本地分支, 我们叫C3)git pull 通过git pull 把远程master最新改动拉下来到C4)git checkout B, 切换到本地分支B, git merge C,把C的最新代码拉倒B,肯定有冲突,手工解决掉。

(5)B git push到远程B, 并通过建立pull request的方式push到远程master

二、提交注释错误如何回退

git commit --amend

三、提交错误版本到本地仓库如何回退

1)git reflog 找回要回退的commit id。

(2)找到上次提交的记录id例如123, 执行 git reset --hard 123 或者 git reset --hard HEAD^

四、自己的远程分支版本回退的方法

git reflog

git reset --hard 123

git push -f   (注意:本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支)

五、公共远程分支版本回退的问题

举例:改完代码测试也没有问题,但是上线后发现你的修改导致之前运行正常的代码报错,必须回滚.

git revert HEAD

git push origin master

注意:

git revert 命令意思是撤销某次提交。它会产生一个新的提交,虽然代码回退了,但是版本依然是向前的,所以,当你用revert回退之后,所有人pull之后,他们的代码也自动的回退了。

git revert 命令的好处就是不会丢掉别人的提交。

总结下:

自己的分支回滚直接用reset

公共分支回滚用revert

错的太远了直接将代码全部删掉,用正确代码替代。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用IDEA进行Git操作时,你可以按照以下步骤进行配置和使用: 1. 首先,确保你已经安装了Git,并在Windows上将Git的可执行文件路径添加到系统环境变量中。 2. 打开IDEA,点击菜单栏中的File,然后选择Settings(或者Preferences)。 3. 在Settings窗口中,展开Version Control,然后选择Git。 4. 在Git配置页面中,点击Path to Git executable,并指定Git可执行文件的路径。这样IDEA就能够找到Git并与其进行交互。 5. 配置完成后,你可以在IDEA中使用Git的各种命令。例如,你可以使用Git Clone命令来克隆一个远程仓库到本地,使用Git Add命令将文件添加到暂存区,使用Git Commit命令提交更改,使用Git Push命令将本地更改推送到远程仓库。 此外,你还可以通过在IDEA中打开Git面板来方便地查看和管理你的Git仓库。你可以通过点击菜单栏中的View,然后选择Tool Windows,再选择Git(或者使用Alt + 9快捷键)来打开Git面板。在Git面板中,你可以执行各种Git操作,并查看当前仓库的状态。 总结起来,你可以通过在IDEA中配置Git可执行文件的路径,然后使用Git命令来进行各种操作,同时通过打开Git面板来方便地管理你的Git仓库。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [IDEA 使用 Git 操作详解](https://blog.csdn.net/wangmx1993328/article/details/109135323)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值