git学习使用笔记

目录

1.安装git(windows系统)

2.使用github仓库

3.修改.git文件夹中的配置文件(以后每次提交时不用输入用户名和密码了)

4.git常用操作

4.1git常用命令

4.2撤销操作

4.3合并分支的某一次提交

4.4解决远程分支删除后本地 git branch -r依然能看到

4.5 查看单个分支的提交历史

4.6保存未提交的修改(git stash)

5.冲突解决

6.git rebase 合并多次commit,修改commit提交注释,删除某个commit

6.1 使用 git rebase -i [commit_id] 合并多次提交

6.2修改提交注释

6.3 使用 git rebase -i HEAD~2 合并提交(最近两次)

6.4 删除某一个提交

6.5 rebase过程中出现冲突解决


1.安装git(windows系统)

官网下载:https://git-scm.com/downloads

下载后按照默认设置安装即可,安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

本地代码加入git管理

在项目根目录文件下执行如下命令后会生成一个.git的文件夹

git init

将文件暂存到本地git中

1.暂存所有文件

git add .

 2.暂存指定文件

git add README.md

提交到本地git中, -m 后面时提交说明

git commit -m "初始化"

2.使用github仓库

创建仓库:

点击 new respository后进入下面的页面

设置完后,点击 Create repository  创建仓库

然后将本地文件关联到github,或者从关联一个已存在的仓库

git remote add origin git@github.com:用户名/仓库名称.git
git push -u origin master

也可以不使用命令行窗口,直接导入即可

3.修改.git文件夹中的配置文件(以后每次提交时不用输入用户名和密码了)

打开.git文件夹,找到config文件

将 url = https://github.com/xxxx/crossDomain.git

修改为 url = https://用户名:密码@github.com/xxxx/crossDomain.git

4.git常用操作

4.1git常用命令

查看文件状态: git status

检出仓库: git clone 仓库地址

添加文件到版本控制:git add [path and fileName]

git add -A . (来一次添加所有改变的文件,注意 -A 选项后面还有一个句点。)

git add . (表示添加新文件和编辑过的文件不包括删除的文件)

git add -u (表示添加编辑或者删除的文件,不包括新添加的文件)

提交文件到本地版本管理:git commit -m “mark” [path and fileName]( 如果不加文件名(fileName), 就是表示提交所有的文件,mark表示备注)

推送远程仓库:git push

查看远程仓库: git remote -v
添加远程仓库:git remote add [name]
删除远程仓库:git remote rm [name]

修改远程仓库:git remote set-url –push  [newUrl]
拉取远程仓库:git pull 
 
查看本地分支:git branch  (*标记的为当前分支)
查看远程分支:git branch -r

创建本地分支:git branch [name]  (注意新分支创建后不会自动切换为当前分支)
切换分支:git checkout [name]

检出到指定版本:git checkout [commit_id]
创建新分支并立即切换到新分支:git checkout -b [name]
删除分支:git branch -d [name]  (首先要切换到其他分支,d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法 删除的。如果想强制删除一个分支,可以使用-D选项)
合并分支:git merge [name]  (将名称为[name]的分支与当前分支合并)
创建远程分支(本地分支push到远程):git push --set-upstream origin [name]  (先创建本地分支,name为本地分支名称)
删除远程分支:git push origin :heads/[name] 或 git push origin :[name]

拉取指定分支:git clone -b 分支名称 代码仓库地址

4.2撤销操作

放弃本地修改:git checkout -- filepathname 或 git checkout .(.代表放弃所有修改)

放弃通过add添加的暂存:git reset HEAD  [path and fileName](如果后面什么都不跟的话 就是上一次add 里面的全部撤销了)

撤销commit提交:

1.git log (查看commit提交日志,按q键退出)

2.git reset [commit_id] --hard  重置到reset节点内容,清除reset节点之后的工作区和暂存区内容,可以直接使用git push -f直接提交到远程

git reset [commit_id] --soft  重置到reset节点内容,同时保留reset节点之后的工作区和暂存区的内容,需要先commit,在git push -f 提交到远程

git reset [commit_id] --mixed(默认) 重置到reset节点内容,同时保留reset节点之后的工作区,不保留暂存区内容,需要add,在commit,在git push -f提交到远程

或者

git revert HEAD ( 撤销前一次 commit)
git revert HEAD^ ( 撤销前前一次 commit)

git revert HEAD^~1 (撤销上次提交)

git revert -n [commit_id]

然后再次提交 git commit -m'message'

最后推送到远程 git push

退出 git revert编辑状态:首先Esc退出输入状态,然后Shift+; 在输入q后回车

reset 会清楚之后所有的提交,回到目标版本,revert 只是去除之前的某一次提交,并生成一次新的提交记录

4.3合并分支的某一次提交

代码开发的时候,有时需要把某分支(比如develop分支)的某一次提交合并到另一分支(比如master分支),这就需要用到git cherry-pick命令。

首先,切换到develop分支,敲 git log 命令,查找需要合并的commit记录,比如commitID:7fcb3defff;

然后,切换到master分支,使用 git cherry-pick 7fcb3defff  命令,就把该条commit记录合并到了master分支,这只是在本地合并到了master分支;

最后,git push 提交到master远程,至此,就把develop分支的这条commit所涉及的更改合并到了master分支。

4.4解决远程分支删除后本地 git branch -r依然能看到

使用 git branch -a 命令可以查看所有本地分支和远程分支

使用命令 git remote show origin,可以查看remote地址,远程分支,还有本地分支与之相对应关系等信息

 git remote prune --dry-run origin 查看当前有哪些是该消失还存在的分支

 git remote prune origin 删除上面展示的所有分支

git fetch --prune origin 如果没有结果输出说明已经删除完成了

4.5 查看单个分支的提交历史

首先要切换到其他分支

git log 分支名称

4.6保存未提交的修改(git stash)

git stash 会把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录

使用git stash save 'message...'可以添加一些注释

git stash pop 恢复最新的进度到工作区。git默认会把工作区和暂存区的改动都恢复到工作区。
git stash pop --index 恢复最新的进度到工作区和暂存区。(尝试将原来暂存区的改动还恢复到暂存区)
git stash pop stash@{1}恢复指定的进度到工作区。stash_id是通过git stash list命令得到的
通过git stash pop命令恢复进度后,会删除当前进度。

git stash apply [--index][stash_id] 除了不删除恢复的进度之外,其余和git stash pop命令一样

git stash drop [stash_id] 删除一个存储的进度.如果不指定stash_id,则默认删除最新的存储进度

git stash list 显示保存进度的列表

git stash clear 删除所有的存储进度

5.冲突解决

1.推送到远程仓库时冲突

例如:

本地文件内容 :#test ct2

远程仓库文件内容:#test ct0

在本地执行如下命令

git add .

git commit -m 'test'

git push

此时提示需要先更新

执行 git pull

此时提示自动合并失败,需要手动解决 READ.md文件中的冲突

打开READ.md文件,Git用<<<<<<<=======>>>>>>>标记出不同分支的内容

修改为

然后再次提交

git add .

git commit -m 'test'

git push

已经成功

2.合并分支时冲突

例如:

test分支文件内容 :#test0

dev分支文件内容 :#test1

同样提示存在冲突,同上面一样打开READ.md文件手动解决后然后提交

6.git rebase 合并多次commit,修改commit提交注释,删除某个commit

git rebase -i [startpoint] [endpoint] 或者  git rebase -i HEAD~2(最近两次提交)

合并最近3次提交

6.1 使用 git rebase -i [commit_id] 合并多次提交

git log 查看提交日志

执行 git rebase -i e1c6eed0a8e229bcb8dd250cd6f140416d570be4  进入vim

里面的提示有:
pick:保留该commit(缩写:p)
reword:保留该commit,但我需要修改该commit的注释(缩写:r)
edit:保留该commit, 但我要停下来修改该提交(不仅仅修改注释)(缩写:e)
squash:将该commit和前一个commit合并(缩写:s)
fixup:将该commit和前一个commit合并,但我不要保留该提交的注释信息(缩写:f)
exec:执行shell命令(缩写:x)
drop:我要丢弃该commit(缩写:d)

按下 i 进入编辑模式,修改第二行和第三行的 pick 为s,保存退出(1.Esc 2.shift+: 3.输入wq)

修改提交注释

再次查看提交日志

6.2修改提交注释

git rebase -i 6361a64e4f1436cefda4070fff1e5b2cb7535c08(这里是需要修改注释的上一次提交commit_id)

将需要修改的提交注释 pick 改为 r

保存退出,修改提交注释

保存退出,再次查看提交日志

6.3 使用 git rebase -i HEAD~2 合并提交(最近两次)

运行it rebase -i HEAD~2,同上,在vim中修改为s,保存退出

填写合并后的提交注释

看看提交日志

6.4 删除某一个提交

git rebase -i e1c6eed0a8e229bcb8dd250cd6f140416d570be4 (这里是需要删除提交的上一次提交commit_id)

6.5 rebase过程中出现冲突解决

在rebase的过程中,也许会出现冲突(conflict). 在这种情况,Git会停止rebase并会让你去解决 冲突;在解决完冲突后,用"git-add"命令去更新这些内容的索引(index), 然后,你无需执行 git-commit,只要执行:

git rebase --continue

这样git会继续应用(apply)余下的补丁。

在任何时候,你可以用--abort参数来终止rebase的行动,并且"mywork" 分支会回到rebase开始前的状态。

git rebase --abort

### 关于 Git 和 IDEA 的学习笔记教程 #### 一、Git 基础概念与工作流程 Git 是一种免费且开源的分布式版本控制系统,适用于各种规模项目的高效管理[^2]。通过掌握 Git 的基本概念和工作流程,用户可以在开发过程中更有效地追踪代码变化并协同合作。 - **仓库(Repository)**:存储项目文件及其历史记录的地方。 - **提交(Commit)**:保存更改的一个快照;每次 commit 都会创建一个新的版本。 - **分支(Branch)**:用于隔离不同功能或实验性的修改路径,在完成之后可以选择合并回主线。 工作流程通常涉及以下几个阶段: 1. 修改文件; 2. 将改动添加至暂存区(Staging Area); 3. 提交这些已暂存的变化到本地仓库; 4. 推送更新后的分支给远程服务器以便团队成员共享进展。 #### 二、Git 使用入门指南 对于初学者来说,熟悉一些常用的 Git 指令是非常重要的。这里列举了一些基础命令供参考[^1]: | 功能 | 对应指令 | | --- | --- | | 初始化新仓库 | `git init` | | 查看当前状态 | `git status` | | 添加文件/目录到索引 | `git add .` 或者指定具体路径| | 记录更改 (commit)| `git commit -m "描述"` | | 创建新的分支 | `git branch 新分支名` | | 切换分支 | `git checkout 分支名称` | 另外还有其他高级特性如标签(tagging),子模块(submodules)等可以根据实际需求进一步探索。 #### 三、IDEA 中集成 Git 工具链 JetBrains 开发环境 IntelliJ IDEA 支持内置 Git 插件来简化日常任务的操作过程。安装完成后即可享受图形界面带来的便捷体验。 ##### 设置连接远端仓库 为了能够在 IDE 内部直接拉取推送数据,需要先配置好 SSH 密钥或者其他形式的身份验证方式,并确保网络可达性良好。接着按照提示输入 URL 地址以及必要的认证信息就可以成功建立关联关系了[^3]。 ##### 日常协作模式下的操作建议 当多人共同维护同一个项目时,合理的分工配合显得尤为重要。利用 IDEA 自带的功能可以帮助开发者更好地适应这种场景下频繁发生的 pull request 审核等活动: - 经常同步最新版源码(`VCS -> Update Project`); - 及早解决冲突问题; - 编写清晰明了的日志消息便于他人理解意图. ```bash # 更新本地副本以获取最新的上游变动 $ git fetch origin master:master ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值