git命令基本语法学习笔记

git命令学习

1. 绑定邮箱和用户名

$ git config --global user.name "chubowen"
$ git config --global user.email "chubowen666@outlook.com"

2. 新建空目录并创建版本库

2.1 新建目录

$ mkdir 褚博文实验
$ cd 褚博文实验一
$ pwd

2.2 初始化

$ git init

2.3 添加文件

$ git add readme.txt

2.4 提交文件到仓库

$ git commit -m "my frist readme file"

3. 修改版本库

3.1 查看当前仓库状况

$ git status

3.2 查看版本异同

$ git diff readme.txt 

3.3 获取版本日志

$ git log

3.4 回退上个版本

$ git reset --hard HEAD^

此处的HEAD^为分支的指针

3.5 显示当前文件的内容

$ cat readme.txt

3.6 撤销前一步的提交或暂存

$ git checkout -- file
  1. readme.txt自修改后还没有被放到暂存区,撤销修改就回到和版本库一模一样的状态

  2. readme.txt已经添加到暂存区后又作了修改,撤销修改就回到添加到暂存区后的状态

3.7 删除文件

$ rm delet.txt

此时若删除错误,可以使用:

$ git checkout -- delet.txt

来撤销删除操作

4.远程库操作

4.1新建SSH key

$ ssh-keygen -t rsa -C "chubowen666@outlook.com"

此时,在GitHub或Gitee中设置SSH key,添加公钥

4.2 把远程库下载到本地

如下载github或gitee的远程库到本地

$ git remote add origin git@github.com:imCBW/myfirst.git
$ git remote add origin git@githee.com:褚博文/myfirst.git

4.3 推送本地库到远程库

$ git push -u origin master

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

$ git push origin master

下次直接用这个命令就行了

4.4 将远程库clone到本地

$ git clone git@github.com:imCBW/myfirst.git

5. 分支设置

5.1 创建分支并切换分支

$ git checkout -b cbw

相当于这两个命令:(1.创建分支 2.切换分支)

$ git branch cbw
$ git checkout cbw

5.2 合并分支

$ git merge cbw

意思是将cbw分支合并至master分支

5.3 分支管理

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

意思是将cbw分支不删除地合并至master分支中

”首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

那在哪干活呢?干活都在cbw分支上,也就是说,cbw分支是不稳定的,到某个时候,比如1.0版本发布时,再把cbw分支合并到master上,在master分支发布1.0版本;

你和你的小伙伴们每个人都在cbw分支上干活,每个人都有自己的分支,时不时地往cbw分支上合并就可以了。”

(摘自廖雪峰的git教学官方网站)

分支工作示意图

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

通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支历史上就可以看出分支信息

5.4 Bug分支管理

$ git stash

可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

$ git stash list

寻找Bug修复的工作区

$ git stash pop

恢复工作现场,同时删除stash的内容

在master分支上修复的bug,想要合并到当前cbw分支,可以用git cherry-pick <commit>命令,把bug提交的修改“复制”到当前分支

5.5 强行删除分支

$ git branch -D cbw-newBranch

强行删除代号为newBranch的cbw分支

5.6 多人协作

$ git remote
gitee
github

查看远程库

$ git remote -v
gitee   git@gitee.com:褚博文/learngit.git (fetch)
gitee   git@gitee.com:褚博文/learngit.git (push)
github  git@github.com:imCBW/learngit.git (fetch)
github  git@github.com:imCBW/learngit.git (push)

查看远程库详细信息

$ git push gitee master

推送至远程库gitee的master分支

6. 标签管理

6.1 创建标签

$ git tag v1.0

给当前分支打上v1.0的tag

$ git log --pretty=oneline --abbrev-commit
f6bfb4e (HEAD -> master, tag: v1.0) update a new file use sourcetree
675f8b9 branch test
4c4a7de remove test
d896455 add test
4a66618 the new readme change
7ab0882 git track changes
34e6d0e modified and add a license file
5300559 wrote a readme file
b3da3ef wrote a readme file


找到历史的commit id,延后通过下列代码给某操作赋新的版本标签:

$ git tag v0.9 675f8b9

(即给“675f8b9 branch test”这一步加上v0.9的标签)

$ git tag 

用该命令查看当前所有的tag

$ git tag -d v0.1

标签出错了,可以用 -d 进行删除

$ git push origin v1.0

该命令为将标签 v1.0 推送到远程

$ git push origin :refs/tags/v0.9

该命令为远程删除标签,当然,要先从本地删除

主要参考:

廖雪峰的博客_git
ani(羽雀)
菜鸟教程_git

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值