扩大
缩小

git 常用命令

创建版本库

mkdir:创建文件

pwd:显示当前目录

ls -ah:查看当前文件子目录的内容

git init:把当前目录变成Git可以管理的仓库;

git add:告诉Git,把文件添加到仓库;可反复多次使用,添加多个文件。

git commit -m "":m后面输入的是本次提交的说明

:1个文件被修改,2行语句新插入。

时光机穿梭

git status:命令可以让我们时刻掌握仓库当前的状态

:readme.txt被修改过了,但还没有准备提交的修改。

git diff:如果git status告诉你有文件被修改过,用git diff可以查看修改内容。git diff HEAD --readme.txt:查看最新版本的区别。

:可以从上面的命令输出看到,我们在第一行添加了一个“distributed”单词。

版本回退

git log:命令显示从最近到最远的提交日志,如果嫌输出信息太多,可以输:git log --pretty=oneline

 

git reset --hard HEAD^:回退到上一版本、上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。(回到过去)

git reset --hard 3628164:举例,(回到未来)

git reflog --你回退到了某个版本,关掉了电脑,第二天早上就后悔了,找不到新版本的commit id,用这个命令。

撤销修改

(可以用git status提示自己)

git checkout -- file:场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时

git reset HEAD file:场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步:第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

 

删除文件

rm命令,删除文件后两个选择

1.一是确实要从版本库中删除该文件,那就用命令git rm test.txt删掉,并且git commit

2.  另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:$ git checkout -- test.txt

 

远程仓库 

1.添加远程库

①:GitHub上创建一个learngit仓库(例子),我们根据GitHub的提示,在本地的learngit仓库下运行命令:

$ git remote add origin git@github.com:muyunyun/learngit.git

添加后,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库。

②:$ git push -u origin master(

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来

③:从现在起,只要本地作了提交,就可以通过命令

$ git push origin master

 

2.从远程库克隆

假如要gitskills的仓库克隆到本地:

$ git clone git@github.com:muyunyun/gitskills.git

GitHub给出的地址不止一个,还可以用https://github.com/michaelliao/gitskills.git这样的地址,但通过ssh支持的原生git协议速度最快。

 

分支管理

创建与合并分支:

git branch:查看分支;

git branch <name>:创建分支;

git checkout <name>:切换分支;

git checkout -b <name>:创建+切换分支;

git merge <name>:合并某分支到当前分支;

git branch -d <name>:删除分支

 

分支管理策略:

git merge --no-ff -m "merge with no-ff" <name>:从分支历史上可以看出分支信息

Bug分支:

修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

多人协作:

  • 查看远程库信息,使用git remote -v

  • 本地新建的分支如果不推送到远程,对其他人就是不可见的;

  • 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

  • 在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

  • 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name

  • 从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

标签管理

  • 命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

  • git tag -a <tagname> -m "blablabla..."可以指定标签信息;

  • git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

  • 命令git tag可以查看所有标签。

 

推荐下廖雪峰老师的Git教程。这个网站也比较详细http://my.oschina.net/bxxfighting/blog/378196?fromerr=fdYQv17q

posted @   牧云云  阅读(431)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示