git学习笔记

1、先安装git   sudo apt-get install git
2、设置git 用户名和邮箱
   git config --global user.email "you@example.com"
   git config --global user.name "Your name"
3、开始使用
   首先创建一个版本库
   mkdir mygit
   git init
4、提交写的内容
   git add readme.txt
   git commit -m  "add a readme file"
5、修改文件内容,再执行第四步

6、查看当前文件的状态 git status

7、若文件被修改过,用git diff 可以查看(在修改过未提交之前可以用这个命令查看)

8、查看修改日志  git log
   忽略没有必要的信息 git log --pretty=online
   
9、回退版本
   Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,
也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),
上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比
较容易数不过来,所以写成HEAD~100

   回退上一版本 git reset --hard HEAD^ 

   回退指定的版本  git reset --hard commit_id(前七位)
   
   git在内部有个指向当前版本的HEAD指针
   git reflog 记录你的每一次命令

10、介绍工作区和暂存区
    工作区:能看的到的目录,.git是一个隐藏目录,不是工作区,而是Git的版本库
    版本库:包括暂存区和分支master
    git add 把文件添加进去,实际上就是把文件修改添加到暂存区
    git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支

11、git管理的是修改,并不是文件
    当你把把文件添加到暂存区,未提交之前再修改,提交之后发现并不是最终版本
原因是你没有把最后修改的文件给添加上去

12、撤销修改	
    1) 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
    2) 当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用
命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
    3) 已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

13、删除文件
    git rm filename

14、远程仓库

    要关联一个远程库,使用命令git remote add origin https://www.github.com/zsjfenger/learngit.git

    关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

    此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

15、远程库的克隆
    使用https除了速度慢意外,还有个最大的麻烦是每次推送都必须输入口令,但是默写只开放http
端口的公司内部就无法使用ssh协议而只能用https

    1) git clone https://github.com/zsjfenger/gittest.git 
    2) git clone git@github.com:zsj/gittest.git

16、分支管理

    查看分支:git branch

    创建分支:git branch <name>

    切换分支:git checkout <name>

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

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

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

17、解决冲突
    当主分支master和新的分支都进行修改,提交合并发生冲突时,手动修改,并添加提交
    查看分支合并图 git log --graph --pretty=oneline --abbrev-commit

18、分支管理
    合并:git merge --no-ff -m "content" dev
    
    合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,
能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

19、强行删除分支 git branch -D feature-vulcan

20、多人协作
    git pull 抓取远程最新的提交,如果抓取失败,可能是没有指定本地dev分支与远程origin/dev分支的链接,根据提示
,设置dev和origin/dev的链接:git branch --set-upstream dev origin/dev

    并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?

    master分支是主分支,因此要时刻与远程同步;

    dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

    bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

    feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发


    多人协作的工作模式通常是这样:

    首先,可以试图用git push origin branch-name推送自己的修改;

    如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    如果合并有冲突,则解决冲突,并在本地提交;

    没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

    如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,
用命令git branch --set-upstream branch-name origin/branch-name。

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

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

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

    命令git tag可以查看所有标签。
    
    git show <tagname> 可以看到文字说明

    命令git push origin <tagname>可以推送一个本地标签到;(远程)

    命令git push origin --tags可以推送全部未推送过的本地标签;(远程)

    命令git tag -d <tagname>可以删除一个本地标签;

   命令git push origin :refs/tags/<tagname>可以删除一个远程标签。(先删除本地标签)




      git学习笔记参考:点击这里


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值