git使用教程

本教程深入讲解Git的高级用法,包括配置管理、分支操作、冲突解决及代码回滚等,帮助开发者掌握团队协作下的高效Git工作流程。

配置 git config

$ git config --global user.name "charlie"
$ git config --global user.email "…@qq.com"

* 查看配置
$ git config --global --list

* 忽略文件权限引起的修改
$ git config --add core.filemode false

git查看

* 查看当前分支的历史纪录
$ gitk 或者 git log

* 查看上一次commit的详细修改
$ git log -p -1

* 暂存前查看文件的详细修改(忽略换行符,参数: -w 或 --ignore-all-space)
$ git diff filename (统计信息在git diff后面添加--stat)

* 查看某个文件file最后的提交情况
$ git blame -L 1,10 file (-L 1,10 表示范围从1行到10行)

git获取github中的仓库

* 克隆仓库xxx并命名为master_clone
$ git clone xxx master_clone

* 获取项目xxx以及子项目
$ git clone --recursive xxx

  git clone 若出现以下错误时,使用git替代https
在这里插入图片描述

远程仓库

* 显示远程仓库
$ git remote -v

git分支管理

* 创建分支
$ git branch 分支名
* 查看本地分支
$ git branch
* 查看所有(包括远程)分支
$ git branch -a
* 切换分支
$ git checkout 分支名
* 合并分支(将feature分支合并到master)
$ git checkout master
$ git merge feature
* 删除分支(删除本地分支)
$ git branch --delete 分支名
* 删除分支(删除远程分支)
$ git push origin --delete 分支名(remotes/origin/分支名)

本地新建分支提交到远程
git branch A  			// 创建本地分支
git checkout A			// 切换到分支A
git push origin A:A  	// 推送到远程A

分支覆盖
git checkour A  // 切换到分支A
git reset --hard B  // 将分支A使用分支B覆盖

git提交

重新提交:git pull与git pull --rebase

* git pull = git fetch + git merge
* git pull --rebase = git fetch + git rebase

C:远程分支Origin
D:远程分支Origin上,别的同学做了修改并提交了
E:远程分支基础上创建的分支的提交点,已经commit;这个时候E不能提交,提交会导致冲突

在这里插入图片描述
M:git pull, 通过fetch origin分支,并与本地提交合并Merge成版本M
在这里插入图片描述
R:git pull --rebase, 创建一个新的提交,但是将E删除,便于提交的曲线为直线,便于理解
在rebase时可能出现冲突,需要解冲突,然后git add更新内容,不用执行git commit, 直接执行git rebase --continue,在任何时候都能使用git rebase --abort 参数来终止rebase的行为,使得mywork回到rebase之前的E状态

去除中间的提交

* commit id 1
* commit id 2
* commit id 3

// 去除第二次提交
1、git rebase -i commit_id_1
2、在弹窗中对于commit id 2的,将pick改为drop, 保存
3、重新提交

远程更新到本地(团队开发)

远程主分支 a - b(他人已提交)
本地主分支 a - c(本人的修改未提交)
最终远程主分支:a - b - c (本人修改提交后)

* 保存未提交的修改
$ git stash
* 更新本地主分支
$ git pull --rebase
* 恢复未提交的修改
$ git stash pop
* 后续提交: git add .; git commit -m "update readme.md"; git push origin master

cherry-pick & git reset

commit1
commit2
commit3

// git reset
git reset commit3  // 包括commit1, commit2, commit3的修改
git add/commit/push

// cherry-pick 代码被回退后,重新提交使用该方法
git cherry-pick commit3  // 只有commit3的修改
git push

冲突解决

A仓为自己开发,B仓为主线
 git pull --rebase git@gitee.com:****.git master	// 在自己开发的仓下,拉B仓(git@***.git)代码
 git status
 git add . // 解决完冲突后
 git rebase --continue
 	:wq		// 保存弹出的文件
 git push -f origin master   		// 强推到A仓

撤销与回退

* 撤销工作区(git add之前)某个文件(file)的修改
$ git checkout -- file
* 撤销git add
$ git reset HEAD
* 撤销git commit, 不撤销git add;HEAD^:代表上一个版本
$ git reset --soft HEAD^
* 撤销git commit, 撤销git add
* $ git reset --mixed HEAD^

* 回退到历史commit处
1、查看提交的日志,找到需要回退的ID号
$ git log
2、本地回退
$ git reset --hard commit_id(commit字符)
3、远程同步
$ git push origin HEAD --force

其他

git命令可视化练习

<think>嗯,用户想查找关于Git使用教程,特别是入门教程和完整指南。首先,我需要根据用户提供的引用内容来组织回答。用户引用了三个来源,其中第一个和第三个提到了Git的基础操作、安装、常用命令和工作流程,第二个引用则列出了具体的教程内容,包括安装、常用命令、原理、工作流程、代码审查和工蜂文档。 首先,我应该按照用户的要求,结构清晰地分步骤讲解Git的入门使用。可能需要从安装开始,然后介绍基本概念,再讲解常用命令,最后提到工作流程和进阶建议。需要确保每个部分都包含具体的例子,比如命令示例,并且正确使用LaTeX格式的行内公式,不过这里可能用不上数学公式,但要注意代码块的格式。 接下来,用户的问题生成部分需要生成相关问题。我需要确保问题与Git入门相关,可能涉及安装、基本命令、分支管理、撤销操作、解决冲突、远程仓库等。要避免重复,并且覆盖用户可能关心的方面。 还要注意引用标识,比如在提到版本控制系统时引用[^1],在安装步骤引用[^2],在基础操作部分引用[^3]。需要自然地插入引用,而不是生硬地添加。 另外,用户示例中的快速排序部分有代码块,所以在Git教程中也应该包含代码示例,比如git init、git add等命令的使用示例,用代码块展示,这样用户更清楚如何操作。 还要检查是否有遗漏的部分,比如是否提到了分布式版本控制系统的优势,或者Git与其他系统的区别,但根据引用内容,可能不需要深入这些,保持入门级即可。 最后,确保回答使用中文,语言流畅,结构清晰,分步骤讲解,并且相关问题部分有针对性。可能需要提醒用户注意常见问题,如冲突解决,或者推荐进一步的学习资源,如Pro Git书籍。</think>### Git使用入门教程完整指南 Git作为分布式版本控制系统,其核心功能是追踪文件变更并支持多人协作开发。以下是入门Git的完整学习路径: #### 一、环境准备 1. **安装Git** - Windows系统访问[Git官网](https://git-scm.com/)下载安装包,勾选`Add to PATH`选项[^2] - Linux系统使用命令安装: ```bash sudo apt-get install git # Debian/Ubuntu sudo yum install git # CentOS ``` 2. **初始配置** ```bash git config --global user.name "YourName" git config --global user.email "your@email.com" ``` #### 二、核心概念 - **仓库(Repository)**:项目的版本库,包含完整历史记录 - **工作区(Working Directory)**:本地修改文件的区域 - **暂存区(Staging Area)**:准备提交的修改暂存区域 - **提交(Commit)**:包含文件变更记录的快照 #### 三、基础操作流程 ```bash # 初始化新仓库 git init my-project cd my-project # 创建新文件 echo "# My Project" > README.md # 添加文件到暂存区 git add README.md # 提交变更 git commit -m "Initial commit" # 查看提交历史 git log ``` #### 四、分支管理 ```bash # 创建新分支 git branch feature-login # 切换分支 git checkout feature-login # 合并分支到main git checkout main git merge feature-login ``` #### 五、远程协作 ```bash # 关联远程仓库 git remote add origin https://github.com/user/repo.git # 推送本地分支 git push -u origin main # 获取远程更新 git pull origin main ``` #### 六、常见问题处理 - **撤销修改**: ```bash git checkout -- filename # 撤销工作区修改 git reset HEAD filename # 取消暂存状态 ``` - **冲突解决**:编辑标记`<<<<<<< HEAD`和`>>>>>>>`冲突区域后重新提交
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值