git笔记整理

配置

$ git init

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

$ ssh-keygen -t rsa -C "youremail@example.com"   //创建SSH Key

$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

$ git config --global core.autocrlf false //禁用自动转换 在Linux下的换行符为LF,而windows下的换行符为 CRLF

 

远程操作

$ git remote add origin git@github.com:michaelliao/learngit.git

 

//$ git checkout -b dev origin/dev  //创建和跳转到与远程关联的dev分支

//$ git branch --set-upstream dev origin/dev //指定本地dev分支与远程origin/dev分支的链接

$ git pull origin master

$ git pull origin dev

$ git push -u origin master  //-u将本地master与远程master相关联

$ git push origin master

$ git push origin dev

 

$ git clone git@github.com:michaelliao/learngit.git

$ git remote rename oringin origin //修改远程的名字

 

工作区,版本库 操作

$ git add readme.txt

$ git checkout -- readme.txt

$ git commit -m "wrote a readme file"

$ git rm test.txt

$ git reset --hard HEAD^

$ git reset --hard 3628164

 

 

 

查看

$ git status

$ git diff readme.txt 

$ git log

$ git log --pretty=oneline

$ git log --graph --pretty=oneline --abbrev-commit

$ git reflog

$ git remote  //查看远程库的信息

$ git remote -v

$ git branch 

 

$ cat readme.txt

 

分支操作

$ git clone git@github.com:michaelliao/gitskills.git

//Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

$ git checkout -b dev  ==   $ git branch dev  $ git checkout dev

 

$ git merge dev

$ git branch -d <name>   //删除分支

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

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

 

bug分支

$ git stash  //没commit然而要修改bug,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作

$ git checkout master

$ git checkout -b issue-101

$ git add readme.txt 

$ git commit -m "fix bug 101"

$ git checkout master

$ git merge --no-ff -m "merged bug fix 101" issue-101

$ git branch -d issue-101

$ git checkout dev

$ git status

$ git stash list

$ git stash pop

 

feature分支

$ git checkout -b feature-vulcan

$ git add vulcan.py

$ git status

$ git commit -m "add feature vulcan"

$ git checkout dev

$ git branch -d feature-vulcan  

//Git友情提醒,feature-vulcan分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用命令git branch -D feature-vulcan。

$ git branch -D feature-vulcan

 

多人协作

$ git remote  //查看远程库的信息

$ git remote -v

$ git clone git@github.com:michaelliao/learngit.git

 

$ git checkout -b dev origin/dev

$ git branch --set-upstream dev origin/dev //指定本地dev分支与远程origin/dev分支的链接

 

$ git pull

$ git push origin master

$ git push origin dev

  • master分支是主分支,因此要时刻与远程同步;
  • dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
  • bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
  • feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发

 

标签

$ git tag v1.0 //创建HEAD所在分支版本标签

$ git tag -a v0.1 -m "signed version 0.2 released" fec145a

$ git push origin v1.0

$ git push origin --tags  //一次性推送全部尚未推送到远程的本地标签

$ git tag  //查看

$ git tag v0.9 6224937

$ git show v0.9

  • 命令git tag -d <tagname>可以删除一个本地标签;
  • 命令git push origin :refs/tags/<tagname>可以删除一个远程标签

 

git tag -s <tagname> -m "blablabla..."可以用PGP签名标签 私钥签名标签看网址https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001376951758572072ce1dc172b4178b910d31bc7521ee4000

 

别名

$ git config --global alias.st status 

//--global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用

$ git config --global alias.co checkout $ git config --global alias.ci commit $ git config --global alias.br branch

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

配置Git的时候,加上--global是针对当前用户起作用的,如果不加,那只针对当前的仓库起作用。

配置文件放哪了?每个仓库的Git配置文件都放在.git/config文件中

$ cat .git/config 

别名就在[alias]后面,要删除别名,直接把对应的行删掉即可。

而当前用户的Git配置文件放在用户主目录下的一个隐藏文件.gitconfig中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值