git笔记

SVN是集中式版本控制系统,版本库是集中放在中央服务器的。Git是分布式版本控制系统,没有中央服务器。
git remote add origin git@github.com:HowellHu/learn_git.git 把一个已有的本地仓库与GitHub关联
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步。
fork是将别人的项目拷贝到自己目录下,并为此建立一个仓库

https://blog.csdn.net/Mr_JavaScript/article/details/83787333
https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E8%8E%B7%E5%8F%96-Git-%E4%BB%93%E5%BA%93

git init 产生.git文件夹,记录所有的变更
git add加入到暂存区,git add .是将所有的都加入到暂存区
git checkout -- <file> 会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
git commit -m "(描述语)" 提交到仓库
git log查看提交记录

如果已经git add某个文件,又想把它撤回,不commit,则需要get reset (文件名)
文件有四种状态:untracked,unmodified,modified,staged。
git reset (commit id)回滚到某个状态 (将仓库文件替换暂存区的文件),checkout表示用暂存区全部或指定的文件替换工作区的文件
或者git reset HEAD~n(向前回滚n次) 表示①移动了HEAD的指向,将其指向上n个快照;②将HEAD移动后指向的快照回滚到暂存区(stage)
reset模式:
--hard HEAD~:移动了HEAD的指向,将其指向上一个快照;将HEAD移动后的指向的快照回滚到暂存区(stage);将暂存区域的文件还原到工作区
--soft HEAD~:移动了HEAD的指向,将其指向上一个快照
--mixed HEAD~:(默认也是--mixed)移动了HEAD的指向,将其指向上n个快照;将HEAD移动后指向的快照回滚到暂存区(stage)

git diff比较暂存区和工作区的不同文件,如果要比较工作区和仓库的不同,可以用git diff HEAD 或者git diff <id>;比较暂存区和仓库的不同,用git diff --cache <id>(<id>可以不用)
git branch查看所有分支
git merge合并分支的变更

删除:本地 rm a.txt
stage区域:git rm a.txt (先手动删除文件,然后使用git rm <file>和git add<file>效果是一样的。)
仓库: git commit -m

git checkout 命令加上 –b参数表示创建并切换,相当于如下2条命令
git branch dev
git checkout dev(切换到dev上面去)
切换后可以用git branch查看各分支,并且星号对应的是当前分支

查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除分支:git branch –d name

git add命令是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
我们需要用git add命令来跟踪新文件,但如果使用git commit -am可以省略使用git add命令将已跟踪文件放到暂存区的功能。

git push -u origin master表示把当前分支 master 推送到远程。因为远程库是空的,所以我们在第一次推送 master 分支时,要加上 -u 参数,Git不但会把本地的 master 分支内容推送的远程新的 master 分支,还会把本地的 master 分支和远程的 master 分支关联起来,在以后的推送或者拉取时就可以简化命令(不加-u参数)。
git push <远程主机名> <本地分支名>:<远程分支名>
如果本地分支名与远程分支名相同,则可以省略冒号:
git push <远程主机名> <本地分支名>

git pull <远程主机名> <远程分支名>:<本地分支名>
git pull origin next:master 要取回origin主机的next分支,与本地的master分支合并。如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。写成
git pull origin next
git fetch:相当于是从远程获取最新版本到本地,不会自动合并。git pull相当于在 fetch的基础上增加了merge操作。

git tag显示出所有的标签
git tag -a v1.4 -m "my version 1.4" 添加附注级标签
git tag v1.4lw 添加轻量级标签
git show v1.4lw 展示相关信息
git tag -d v1.0 删除标签
git checkout v1.4 切换到1.4的标签

将本地传到远程 git remote add origin https://10.21.155.251/hu-qs/BMS_6.git
git push -u origin master

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

相关阅读更多精彩内容

  • 目录 Git 笔记系列(一)—— Git简介 Git 笔记系列(二)—— Git工作流程 Git 笔记系列(三)—...
    吃蘑菇De大灰狼阅读 579评论 0 4
  • Git 是目前最流行的分布式版本控制系统之一。 版本控制指的是,记录每次版本变更的内容和时间等细节,保留各版本之间...
    神齐阅读 1,496评论 0 7
  • GIT git init 初始化git仓库,会在目录下生成一个.git的隐藏文件,里面保存着本地库的版本管理信息 ...
    佛系跳伞运动员阅读 522评论 0 0
  • 一.Git简介 Git是世界上最先进的分布式版本控制系统,相对于SVN这样的集中式版本控制系统,Git不需要“中央...
    ahuustcly阅读 773评论 0 0
  • 最近使用Git时感到有些生疏,所以利用晚上空余时间将廖雪峰Git教程重新系统的学习一边并做了笔记,温故知新。 Gi...
    LannisZheng阅读 738评论 1 3

友情链接更多精彩内容