Git常用指令

本文详细介绍了Git的基本使用流程,包括初始化本地仓库、提交更改、分支管理、解决合并冲突、临时保存修改、以及如何与GitHub交互。涵盖了从入门到进阶所需的各种Git命令和实践技巧。

参考Git,PPT来源黑马Git(B站有资源),还有参考莫凡大佬
获取信息:git config --list --show-origin
获取名字:git config user.name
直接在一个空的文件夹使用Git bash here创建一个本地仓库(版本库):git init
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

工作区(Working directory)
基本的 Git 工作流程如下:

1.在工作区中修改文件。

2.将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区(索引)。

3.提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录(ppt中的本地仓库)

下面都是在git bash窗口下运行:
显示本地仓库的所有文件:ls -a
windows打开仓库中的文件(eg:打开.git):start .git(就会打开git这个文件夹了)
本地仓库创建一个空文件(eg:创建1.py):touch 1.py
查看仓库提交状态:git status

把工作区的py文件添加到暂存区中:git add 1.py
把刚刚到暂存区的文件(bush显示modified)提交到本地仓库:git commit -m"create 1.py"(m后面是写提示信息)

一、记录修改

查看提交(commit)的记录:git log
如果再对1.py进行修改的话,就变成了下图的从unmidified到了modified,要再次git add(修改后的文件都必须先git add再commit)到暂存区再git commit 到本地仓库…
在这里插入图片描述
查看修改后与commit的不同:git status -s
接着上一条语句输入:git diff可看修改和之前修改的区别内容

把所有文件都添加到暂存区:git add .

若add到暂存区输入git diff 看不到与上次的区别,这里要输入:git diff --cached

(非暂存区状态,unstated)若你上次add到暂存区还没commit又修改的话,那么他就是MM(一红一绿)了,看修改此时用:git diff HEAD

把所有的东西commit:先git add . 再git commit -m"提示"

二、回到从前

查看提交(commit)的记录(简洁版):git log --oneline
参考:莫凡Git回到从前

三、分支管理

参考:https://mofanpy.com/tutorials/others/git/branch/
查看提交(commit)的记录(简洁版+前面带个*):git log --oneline --graph

  1. 方法1(手动切换分支)

建立另一个分支 dev(自己命名的):git branch dev
查看有多少个分支:git branch(有*的代表你正在使用的)
切换到dev分支:git checkout dev
删除dev分支:git branch -d dev(前提要切换到master分支(git checkout master))

2.方法2(自动切换分支)
直接创建和切换到新建的分支:git checkout -b dev

因为当前的指针 HEAD 在 dev 分支上, 所以现在对文件夹中的文件进行修改将不会影响到 master 分支.
此时对dev进行修改:一键式(add+commit):git commit -am “提示内容”(前提有文件add了)
现在再切换到master:git checkout master会看不刚刚再dev的修改的

我们的开发板 dev 已经更新好了, 我们要将 dev 中的修改推送到 master 中, 大家就能使用到正式版中的新功能了.(合并后只是master变了,dev分支还是不变的)
首先我们要切换到 master, 再将 dev 推送过来.:git merge --no-ff -m “提示信息” dev1
再输入:git log --oneline --graph 可看到merge的图线

四、merge分支冲突

参考

今天的情况是这样, 想象不仅有人在做开发版 dev 的更新, 还有人在修改 master 中的一些 bug. 当我们再 merge dev 的时候, 冲突就来了. 因为 git 不知道应该怎么处理 merge 时, 在 master 和 dev 的不同修改.当创建了一个分支后, 我们同时对两个分支都进行了修改.

此时直接在master合并(git merge dev)会报出CONFLICT错误,要手动文件并删除》》》…也可以修改<<<到>>>的内容,此时为modified要add +commit:直接用:git commit -am “solve conflict(提示)”

五、rebase 分支冲突

参考

六、临时修改 (stash)

来自:https://mofanpy.com/tutorials/others/git/stash/

就是modified后还没add+commit就要处理别的事情用的,处理完别的事情再回来stash处理之前的事

从stash中拿出来:git stash pop

七、Github

在本地仓库的名字可以和github创立的仓库名可以不一样

1.1、以http上传代码到github某个仓库:
要输入github账户和密码
在这里插入图片描述

git remote add origin https://github.com/github账户/git_demo(github仓库名).git #(github直接复制就行,见上图)
git push -u origin master     # 推送本地 master 去 origin
git push -u origin dev        # 推送本地 dev(自己创的分支)  去 origin(没有该分支可以省略)

若你此时在master(git checkout master
)上修改1.py时,修完后git commit -am “change 2 in master(提示)”,再push到github:git push -u origin master
(interesting)(github上可以看history可以看修改的区别内容)

1.2、利用http克隆到本地
在这里插入图片描述
在你的电脑想要放的目录打开Git Bash here在输入下面:
git clone https://github.com/账号/git_demo.git(打开Github仓库的CORE有这个码)

2.SSH
把本地文件推送到github时:ssh要公钥和私钥(GUI才要),https要github的账号密码

设置ssh公钥私钥啥的:随便在一本地仓库打开Git bash here输入:ssh-keygen -t rsa然后一直回车生成:
在这里插入图片描述
然后把公钥复制进github(setting)中的ssh就行。
2.1、利用ssh把代码放到github
在这里插入图片描述
代码和上面http差不多

git remote add origin git@github.com:账户/tishi.git(去github复制)
git push -u origin master     # 推送本地 master 去 origin
git push -u origin dev        # 推送本地 dev(自己创

2.2使用SSH把代码克隆下来到自己电脑
在这里插入图片描述
git commit -m “xxxx” 文件名
git commit -m "xxx"不指定文件名的话,会把你暂存区所有的文件都commit上去。
克隆一份代码到本地仓库:
1.ssh:首先打开github把要下载代码的ssh码复制下来,打开一个本地空文件夹输入:
在你的电脑想要放的目录打开Git Bash here在输入下面:
git clone 粘贴(右键paste)刚刚的ssh码

  • 使用git命令拉取指定分支:
    命令:git clone -b develop 远程网址
    其中develop就是分支的名称

  • 如果本地的分支跟远程的分支不一样,则指定本地和远程的分支的名称:
    git push origin(远程仓库名) localBranchName:remoteBranchName(没有就会新建)

pull操作(参考:1

  • 1、将远程指定分支 拉取到 本地指定分支上:

    git pull origin <远程分支名>:<本地分支名> (和push相反)

  • 2、将远程指定分支 拉取到 本地当前分支上:

    git pull origin <远程分支名>

### Git 常用指令汇总 以下是基于提供的参考资料以及专业知识整理的 Git 常用命令列表: #### 初始化与配置 - **初始化仓库**: 使用 `git init` 可以在一个工作目录中初始化一个新的 Git 仓库[^1]。 - **全局用户名邮箱设置**: ```bash git config --global user.name "Your Name" git config --global user.email "your_email@example.com" ``` #### 添加文件到暂存区 - 将单个文件添加到暂存区: ```bash git add filename ``` - 将多个文件添加到暂存区: ```bash git add *.extension ``` - 将所有更改的文件一次性添加到暂存区: ```bash git add . ``` #### 提交更改 - 提交暂存区中的更改并附带提交信息: ```bash git commit -m "commit message" ``` - 如果有已跟踪文件被修改过,则可以跳过暂存直接提交: ```bash git commit -am "commit message" ``` #### 查看状态与日志 - 查看当前工作树的状态,包括哪些文件已被修改但尚未提交: ```bash git status ``` - 显示所有的提交记录及其元数据: ```bash git log ``` - 更简洁的日志显示方式: ```bash git log --oneline ``` #### 分支管理 - 列出所有分支: ```bash git branch ``` - 创建新分支: ```bash git branch new_branch_name ``` - 切换至另一个分支: ```bash git checkout existing_branch_name ``` - 合并某个分支到当前分支: ```bash git merge source_branch_name ``` #### 远程操作 - 查看远程仓库的信息: ```bash git remote -v ``` - 添加一个新的远程仓库: ```bash git remote add shortname url ``` - 获取最新的远程分支更新: ```bash git fetch origin ``` - 将本地提交推送到远程仓库: ```bash git push origin master ``` #### 标签管理 - 查看已有标签: ```bash git tag ``` - 创建轻量级标签: ```bash git tag v1.0 ``` - 创建带有注解的标签: ```bash git tag -a v1.0 -m "Version 1 release" commit_hash ``` - 推送标签到远程仓库: ```bash git push origin v1.0 ``` - 删除本地标签: ```bash git tag -d v1.0 ``` - 删除远程标签: ```bash git push origin :refs/tags/v1.0 ``` #### 撤销操作 - 撤销最后一次提交但仍保留代码改动: ```bash git reset HEAD~1 ``` - 撤销某一次特定提交的历史记录而不影响后续提交: ```bash git revert commit_id ``` - 若想重置整个项目回到某一历史节点(危险操作),可使用硬重置: ```bash git reset --hard commit_id ``` #### 其他实用技巧 - 当前未保存的工作进度可以通过 stash 功能临时存储起来以便切换上下文环境: ```bash git stash save "message" git stash pop # 应用最新stash并移除它 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值