Git笔记

引言

记录工作中常用到的git指令,参考廖雪峰的git教程。

1、git初始化

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

2、创建版本库

$ git init  # 把当前目录变成Git可以管理的仓库
$ git add readme.txt  # 把文件添加到仓库
$ git commit -m "wrote a readme file"  # 把文件提交到仓库

3、版本回退

$ git log  # 显示从最近到最远的提交日志
$ git reset --hard HEAD^  # 回退到上一个版本

上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

$ git reset --hard 3628164  # 根据commit id回滚,无须写全

如果要重返未来?用 reflog找到之前的commit id。

$ git reflog  # 查看每一次操作记录

4、工作区、暂存区

$ git status  # 查看当前状态

Git跟踪并管理的是修改,而非文件。

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

5、撤销修改

$ git checkout -- readme.txt  # 丢弃工作区的修改

这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
总之,就是让这个文件回到最近一次git commit或git add时的状态。

$ git reset HEAD readme.txt  # 把暂存区的修改撤销掉(unstage),重新放回工作区

6、删除文件

$ rm test.txt  # 本地删除
$ git rm test.txt  # git删除

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是只能恢复文件到最新版本,会丢失最近一次提交后你修改的内容。

7、远程仓库

创建ssh:

$ ssh-keygen -t rsa -C "youremail@example.com"  # 创建ssh

关联远程仓库:

$ git remote add origin git@server-name:path/repo-name.git  # 关联远程仓库

推送本地更新:

$ git push -u origin master  # 第一次推送master分支的所有内容
$ git push origin master  # 后续推送最新修改

克隆远程仓库:

$ git clone git@github.com:path/repo-name.git  # 克隆远程仓库

8、分支管理

创建并切换分支:

$ git branch <name>  # 创建分支
$ git checkout <name>  # 切换分支
$ git checkout -b dev  # 创建并切换到分支dev,相当于上面两条命令

$ git branch  -a # 查看所有分支
$ git branch  # 查看当前分支

合并分支:

$ git merge dev

删除分支:

$ git branch -d dev

普通模式合并,能看到合并记录

$ git merge --no-ff -m "merge with no-ff" dev

保存与恢复现场:

$ git stash  # 保存现场
$ git stash list  # 查看stash记录
$ git stash pop  # 恢复现场,同时把stash内容也删了

多人协作:

  • 查看远程库信息,使用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 cheat sheet

参考资料

[1] https://www.liaoxuefeng.com/
[2] https://git-scm.com/book/zh/v2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 9,223评论 0 13
  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 16,098评论 5 147
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 14,660评论 9 163
  • 古人云:多行不义必自毙,坏事做尽的我终于也迎来了上天的惩罚! 那天上午,我正在教室里埋头做试卷,突...
    路重坡阅读 3,068评论 0 1
  • 台湾有诚品,北京有光合作用,广州有方所,南京有先锋,而在我的家乡湘潭,现在有了阅+。 一个城市有了间可驻足流连的书...
    全职妈妈爱丽丝阅读 9,183评论 9 20

友情链接更多精彩内容