GIT 教程

GIT 教程,来源: https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

 

1.windows下载 https://git-for-windows.github.io  。 或国内镜像 。按默认选项安装即可。

2.安装结束后,开始菜单找到“Git”->“Git Bash”

并输入(-- 后无空格):    

git config --global user.name "Your Name"      
git config --global user.email "email@example.com"

 

3.切换到自己想要的目录,确保目录中不要有中文。。创建一个空目录。

$ mkdir learngit
$ cd learngit
$ pwd     #pwd命令用于显示当前目录
/Users/michael/learngit

 

4. 执行      git init  命令。把目录变成 GIT可以管理的仓库。

    ps: 同时,会有创建一个 .git 的隐藏文件。使用  ls -ah 命令可看见。

 

注: 建议使用标准的UTF-8编码 。使用Notepad++ 时,默认编码设置为UTF-8 without BOM

 

 

 

5. 添加文件到Git仓库,分两步:

第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;       

$ git add readme.txt       # git add 是将修改内容或者新文件添加到本地缓存区

第二步,使用命令git commit,完成。 -m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。

git commit -m "wrote a readme file"        # git commit 将本地缓冲区的内容提交到本地仓库

 

6.查看当前工作区的状态   git status   。可以知道有哪些文件被修改过

7.查看修改的内容  git diff

8. 显示从最近到最远的提交日志   git log       。每条记录对应显示commit时,同步的mess

   HEAD 表示当前版本,即最新提交

   HEAD^ : 上一个版本                

   HEAD^^  :上上一个版本

   HEAD~100   :往上100个版本

 

 回退到上一个版本:  git reset --hard HEAD^

跳转到指定版本,需知道版本ID:       git reset --hard 版本号  (版本号可以不写全,也不能太短。)

 

9. 查看命令历史 : git reflog     。      ps: 通过操作历史, 可以确定要回到未来的哪个版本

 

10.工作区: 在电脑里能看到的目录

       版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库

                      GIT版本库中包含 称为stage(或者叫index)的暂存区。还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。


11. 把文件往Git版本库里添加的时候,是分两步执行的:

(1)用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

(2)用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,git commit就是往master分支上提交更改。

>>>需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改

 

 

12.GIT管理的是修改。 commit的内容 只会是提交了修改,即 add 之后的内容。

git diff HEAD -- readme.txt       # 可以查看工作区和版本库里面最新版本的区别

 

13. 撤销修改

 git checkout -- file       :把file 文件在工作区的修改全部撤销,即没有add过的修改       (git checkout -- file命令中的--很重要,没有- -,就变成了“切换到另一个分支”的命令)

(1)file 自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

(2)file  已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

>>>> 让这个文件回到最近一次git commitgit add时的状态。

 

 git reset HEAD file : 可以把暂存区的修改撤销掉(unstage),重新放回工作区  。即add 但是没有commit 的修改 时,可执行此命令。

 

13. 删除文件

rm  删除

git  rm file  :从版本库中删除该文件 。后面还需要 git commit

git checkout -- test.txt  : 把误删的文件恢复到最新版本。

                                           git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

 

 

 

 

14. 关联本地仓库和 GitHub : 

(1)在本地的 learngit仓库下,运行命令

 git remote add origin git@github.com:GITHub账户名/learngit.git         添加后,远程库的名字就是origin (Git默认的叫法)

 (2) 第一次将本地库内容推送到远程

git push -u origin master   第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来

   git push origin master 后续把本地master分支最新修改推送至GitHub

 

15.SSH警告

第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告: 即判断  GitHub的RSA Key的指纹信息是否与SSH连接给出的一致   。yes  即可。

 

16.从远程库克隆

git clone git@github.com:GITHub账户名/gitskills.git  用命令克隆一个远程库。   (gitskills 是GitHub上创建的仓库名)

 

17. 分支管理

git branch 查看当前分支 。 git branch命令会列出所有分支,当前分支前面会标一个*号。

git branch dev 创建dev分支

git checkout dev 切换到dev分支

或 git checkout -b dev 表示创建并切换



git merge dev 把dev分支的工作成果合并到master分支上 (git merge命令用于合并指定分支到当前分支。)

git branch -d dev 删除dev分支


 

18. 解决冲突:

git status 可以告诉冲突的文集。 然后先手动解决冲突,再提交

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容

 git log --graph --pretty=oneline --abbrev-commit     用带参数的git log也可以看到分支的合并情况

git log --graph  可以看到分支合并图

 

19. 分支管理策略

策略一: Fast forward模式 (该模式下,删除分支后,会丢掉分支信息)

策略二:强制禁用Fast forward模式,即用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

             it merge --no-ff -m "merge with no-ff" dev   # --no-ff参数,表示禁用Fast forward,
                                                                                      #本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去

 20.

git remote 查看远程库的信息

git remote -v 显示更详细的信息,可抓取和推送的origin地址。如果没有推送权限,则看不到push地址。

 

21. bug分支
通过一个新的临时分支来修复bug,修复后,合并分支,然后将临时分支删除。

对于修复紧急bug分支时,可以先冻结当前工作现场 git stash

bug修复后,可通过 git stash list 查看当前工作现场 git stash list

恢复工作现场 git stash apply

删除stash内容 git stash drop

或在恢复工作现场的同时,就把stash内容删除 git stash pop

 

22.Feature分支

需求分支,每添加一个新功能,新建一个 feature分支。

git checkout -b feature-vulcan #新建feature分支

git branch -d feature-vulcan 合并前删除分支,此时会有提示删除后则丢失修改

git branch -D feature-vulcan 强行删除。则可删除成功。、


23.推送分支

git push origin master 把分支上所有本地提交,推送到远程库对应的远程分支上

git push origin dev 推送其他分支到远程库

 

24.判断是否需要推送:
(1)master分支是主分支,因此要时刻与远程同步;

(2)dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

(3)bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

(4)feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

25.
标签管理
标签tag是让人容易记住的有意义的名字。是指向某个commit的指针。如V1.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/ericazy/p/7285612.html

### Git 入门教程与使用指南 Git 是一个分布式版本控制系统,广泛用于软件开发中,帮助开发者管理代码的变更历史、协作开发以及维护多个版本的代码库。以下是 Git 的基本使用和操作指南,适合初学者快速上手。 #### 1. Git 的安装与配置 在使用 Git 之前,需要先在本地环境中安装 Git。安装完成后,建议配置全局用户名和邮箱,以便在提交代码时记录作者信息。 ```bash # 配置全局用户名 git config --global user.name "YourName" # 配置全局邮箱 git config --global user.email "your.email@example.com" ``` 这些信息会记录在每次提交中,确保团队协作时可以追溯代码的来源[^1]。 #### 2. 初始化本地仓库 创建一个新的 Git 仓库可以通过 `git init` 命令完成。该命令会在当前目录下生成一个 `.git` 子目录,用于存储版本控制数据。 ```bash # 初始化一个新的 Git 仓库 git init ``` #### 3. 克隆远程仓库 如果已有远程仓库(如 GitHub、GitLab 或公司内部 Git 服务器),可以使用 `git clone` 命令将远程仓库复制到本地。 ```bash # 克隆远程仓库到本地 git clone https://git.code.tencent.com/git-class-001/git-test.git ``` 克隆完成后,会在本地生成一个与远程仓库完全相同的副本,开发者可以在本地进行修改和提交[^2]。 #### 4. 查看仓库状态与提交历史 在进行提交或修改之前,建议使用 `git status` 查看当前分支的状态,了解哪些文件已被修改但尚未提交。 ```bash # 查看当前分支状态 git status ``` 如果需要查看提交历史,可以使用 `git log` 命令: ```bash # 查看提交历史 git log ``` 在查看提交历史时,可以使用键盘上的方向键滚动,按 `Q` 键退出查看模式。 #### 5. 添加与提交更改 在修改文件后,需要将更改添加到暂存区,然后进行提交。 ```bash # 添加所有修改到暂存区 git add . # 提交更改并添加提交信息 git commit -m "描述本次提交的内容" ``` 提交信息应简明扼要,说明本次提交的目的或修改的内容,便于后续查看和理解。 #### 6. 推送更改到远程仓库 提交完成后,可以将本地的更改推送到远程仓库,以便其他开发者同步更新。 ```bash # 推送本地提交到远程仓库 git push origin main ``` 其中 `origin` 是远程仓库的默认名称,`main` 是默认的主分支名称。如果使用其他分支,需替换为对应的分支名。 #### 7. 分支管理 Git 支持创建多个分支,便于并行开发和版本管理。常用的分支操作包括创建、切换、合并和删除分支。 ```bash # 创建新分支 git branch feature-branch # 切换到指定分支 git checkout feature-branch # 创建并切换到新分支(简化命令) git checkout -b feature-branch # 查看所有分支 git branch # 合并指定分支到当前分支 git merge feature-branch # 删除分支 git branch -d feature-branch ``` 分支管理是 Git 的核心功能之一,合理使用分支可以有效组织开发流程,避免主分支的不稳定状态[^3]。 #### 8. 使用 Git Rebase 整理提交历史 除了 `git merge`,还可以使用 `git rebase` 来整合分支的提交历史。`git rebase` 可以将一个分支的更改“移植”到另一个分支上,使提交历史更加线性、清晰。 ```bash # 切换到要 rebase 的分支 git checkout feature-branch # 将 feature-branch 的提交基于 main 分支进行 rebase git rebase main ``` 在 rebase 过程中可能会遇到冲突,需要手动解决冲突后继续 rebase 操作。 #### 9. 解决冲突 当多人同时修改了同一个文件的相同部分时,Git 会提示冲突。冲突文件中会标记冲突区域,开发者需要手动编辑文件,选择保留的代码。 ```bash # 冲突解决后标记为已解决 git add <filename> # 继续 rebase 或 merge 操作 git rebase --continue ``` #### 10. 常用命令总结 | 操作 | 命令示例 | |--------------------------|---------------------------------------| | 初始化仓库 | `git init` | | 克隆远程仓库 | `git clone <仓库地址>` | | 查看状态 | `git status` | | 查看提交历史 | `git log` | | 添加修改到暂存区 | `git add .` | | 提交更改 | `git commit -m "提交信息"` | | 推送更改 | `git push origin <分支名>` | | 创建分支 | `git branch <分支名>` | | 切换分支 | `git checkout <分支名>` | | 创建并切换分支 | `git checkout -b <分支名>` | | 合并分支 | `git merge <分支名>` | | 删除分支 | `git branch -d <分支名>` | | Rebase 操作 | `git rebase <目标分支>` | | 解决冲突后继续 Rebase | `git rebase --continue` | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值