Git学习笔记

1.创建本地代码库
mkdir learngit //创建工作目录
cd learngit
git init //将当前目录初始化为Git仓库

2.添加文件到Git缓冲区
git add readme.txt

3.提交修改到本地仓库
git commit -m "wrote a readme file"

4.查看状态
git status

5.查看提交记录
git log
git log --pretty-oneline //优化输出

6版本回滚
git reset --hard HEAD^
git reset --hard HEAD~100
git reset --hard 版本号

7.指令记录
git reflog

8.对比当前文件和库中文件
git diff HEAD -- readme.txt

9.撤销工作目录中的修改
一、readme.txt自修改之后还没有被放到暂存区,撤销修改就是回到和版本库相同的版本。
二、readme.txt已经添加到暂存区后,又作了修改,撤销操作就是回到和暂存区相同的版本。
git checkout -- readme.txt

10.撤销暂存区中的修改
git reset HEAD readme.txt

11.删除文件
git rm readme.txt //修改git库中的文件
git commit //在工作空间中删除后,将删除后的变化提交到git库

12.使用git库中的版本替换工作空间中的版本
git checkout -- readme.txt


13.创建分支
git checkout -b dev
-b //创建并切换到新的分支,相当于分别执行了如下两条指令:
git branch dev
git checkout dev

14.查看当前所有分支,标记*为当前分支
git branch

15.切换分支
git checkout master //切换到主分支

16.合并分支到主分支
git checkout master //切换到主分支
git merge dev //将dev分支合并到当前分支(master主分支)

17.删除分支
git branch -d dev //删除dev分支

18.解决冲突
(1)模拟冲突
git checkout -b feature //创建并切换分支

Creating a new branch is quick AND simple. //修改文本内容
git add readme.txt
git commit -m "AND simple"

git branch master //切换到主分支

Creating a new branch is quick & simple. //修改文本内容
git add readme.txt
git commit -m "& simple"

git merge feature //将feature分支合并到当前分支(master主分支)

发生冲突:
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick AND simple.
>>>>>>> feature1

(2)解决冲突
手动处理冲突
git add readme.txt
git commit -m "confilict fiexed"

(3)查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit

19.分支管理策略
通常,合并时,如果可能,Git会使用Fast forward模式,这种模式下,删除分支后,会丢掉分支信息。
如果强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样可以从历史上看出分支信息。
合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出曾经做过合并操作。而fast forward合并就看不出曾经的合并操作。

操作案例:
git checkout -b dev
merge //个性readme.txt文件
git add readme.txt
git commit -m "add merge"
git checkout master
git merge --no-ff -m "merge with no-ff" dev //以禁用Fast forward的方式合并dev分支。因为本次合并会创建一个新的commit,所以通过-m添加描述。

分支策略:
master应该是非常稳定的,仅用于发布新版本。
在dev分支作阶段性提交,发布版本时,将dev合并到master上。
每个人有自己的分支,在自己的分支下作频繁性地修改。


20.Bug分支
... //正在dev分支下开发
git stash //保存当前工作现场。执行该操作后,git status查看当前工作空间为“干净”状态。

git checkout master //切换需要修复的分支
git checkout -b issue-101 //创建并切换分支到issue-101
... //修复bug
git add readme.txt
git commit -m "fix bug 101"
git checkout master
git merge --no-ff -m "merged bug fix 101" issue-101 //合并操作并创建一个新的commit
git branch -d issue-101

git checkout dev //切换回原来的工作现场
git stash list //查看保存过的工作现场

(1)恢复工作现场,手动删除stash
git stash apply //恢复工作现场
git stash drop //手动删除工作现场

(2)恢复工作现场,自动删除stash
git stash pop

21.Feature分支
git checkout -b feature-vulcan

git add vulcan.py
git status

git checkout dev

git branch -d feature-vulcan //删除feature-vulcan分支失败
git branch -D feature-vulcan //强制删除feature-vulcan分支



22.关联远程库
git remote add origin git@gitee.com:axylp/learngit.git
origin //远程库的名字

23.将本地库推送到远程库
git push origin master
git push -u origin master
-u //由于远程库是空的,第一次推送master分支时,加上-u参数,Git会将本地库推送到远程库的同时,将本地库与远程库相关联。

24.克隆远程库到本地
git clone git@gitee.com:axylp/learngit.git

25.查看远程库信息
git remote

26.查看远程库详细信息
git remote -v

27.推送修改到远程分支
git push origin master //推送到master主分支
git push origin dev //推送到dev分支

master分支是主分支,因此要时刻与远程同步。
dev分支是开发分支,团队所有成员都需要在上面工作,因此需要同步到远程。
bug分支只用于在本地修复bug,可以不推送到远程。
feature分支是否推送到远程取决于是否与其他人合作。

28.关联远程分支到本地
git checkout -b dev origin/dev //关联远程库的dev分支到本地。

git add readme.txt
git commit -m "add /usr/bin/env"
git push origin dev

29.获取远程分支最新版本
git branch --set-upstream-to=origin/dev master //长期间关联[dev]分支名

30.创建标签
1.切换到要打标签的分支
2.创建标签

常用指令:
git tag v1.0 //创建新标签,默认打在最新提交上。
git tag v1.0 6224937 //通过ID对历史提交打标签
git tag //查看所有标签
git show v1.0 //查看标签信息
git tag -a v0.1 -m "version 0.1 release" 6224937
-a //标签名字
-m //描述
-s //私钥签名标签
git tag -d v0.1 //删除标签
git push origin v1.0 //推送标签到远程
git push origin --tags //一次推送所有标签(未推送的)

删除远程标签
git tag -d v0.9 //删除本地标签
git push origin :refs/tags/v0.9 //删除远程标签


31.远程库删除最后一次提交
git revert HEAD
git push origin master
revert是放弃指定提交的修改,但是会生成一次新的提交,需要填写提交注释,以前的历史记录都在,而reset是指将HEAD指针指到指定提交,历史记录中不会出现放弃的提交记录。

32.远程库删除指定提交
git rebase -i "command id"
git push origin master -f
在弹出的编辑框中删除提交记录即可。

33.远程库修改某次提交
git add .
git commit --amend
git rebase --continue
在弹出的编辑框中修改提交记录即可。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞天遇见妞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值