大飞_dafei

导航

git 常用功能 _fei

01)git 常用功能

git常用分支:master主分支、dev开发分支、bug分支、feature临时功能分支

origin:默认远程分支;

初始化一个Git仓库,使用git init命令。
git add <file>   注意,可反复多次使用,添加多个文件【 git add .】【git commit readme.md -m"readme备注信息"】
git commit       完成。 git commit -m"备注"
git status       掌握工作区的状态
git diff         可以查看修改内容。
git reset --hard commit_id    在版本的历史之间穿梭
###  git reset --hard 远程覆盖本地
###  git pull origin dev  从dev分支获取最新提交
git log                     (git log --pretty=oneline)可以查看提交历史
git log --oneline  #查看简洁历史
git reflog                    查看命令历史
git checkout -- file          把文件在工作区的修改全部撤销    命令中的--很重要
git rm                       用于删除一个文件

git remote add origin git@server-name:path/repo-name.git  要关联一个远程库,使用命令
git push -u origin master      关联后,使用命令git push -u origin master第一次推送master分支的所有内容

git clone   克隆一个仓库
git clone -b name(分支名称)   克隆一个分支仓库

////////分支修改后,分支提交了,切换到master后才会看不到内容,分支不提交,master可以看到修改内容///////
git branch   查看分支
git branch -a 查看所有分支
git branch <name>             创建分支
git checkout <name>           切换分支
git checkout -b <name>        创建+切换分支
git merge <name>              合并某分支到当前分支   
git branch -d <name>          删除分支
git branch -D <name>          强行删除分支(不需要合并)
git log --graph               看到分支合并图
git merge --no-ff -m "merge with no-ff" dev   加上--no-ff参数就可以用普通模式合并
git stash                     储藏
git stash list                
git stash pop                  恢复储藏并删除储藏

git fetch origin master        获取远程分支到本地
git merge origin/master        合并到本地仓库
git pull                       获取最新提交【git pull = git fetch + git merge】

git tag <name>                             用于新建一个标签,默认为HEAD,也可以指定一个commit id
git tag <name> <commit id>                 新建一个标签在commit id上
git tag -a <tagname> -m "blablabla..."     可以指定标签信息
git tag -s <tagname> -m "blablabla..."     可以用PGP签名标签
git tag                                    可以查看所有标签
git push origin <tagname>                  可以推送一个本地标签
git push origin --tags                     可以推送全部未推送过的本地标签
git tag -d <tagname>                       可以删除一个本地标签
git push origin :refs/tags/<tagname>       可以删除一个远程标签
git ls-files                            如何知道目录里的文件是否在git仓库里

 

 02) 设置本项目提交用户名

git config user.name "dafei"
git config user.email "123333333@qq.com

  查看用户名

git config user.name
git config user.email

 

 

03) git客户端:SourceTree

问题:推送、拉取失败总是报错(通过SSH秘钥认证失败,你想要运行SSH秘钥代理(Pageant)并重试吗?)

解决方法:已经附图

 

 

 

 

这里写图片描述

04) linux系统搭建git服务:

https://www.linuxidc.com/Linux/2017-01/139457.htm
http://www.linuxidc.com/Linux/2011-12/48555.htm
scp ~/.ssh/id_rsa.pub dafei@192.168.1.149:/home/dafei

05) 从自己服务器获取

git clone dafei@192.168.1.149:/data2/www1/sample.git
git clone 用户名@服务器ip:/目录/sample.git
git clone -b 分支名称 dafei@192.168.1.149:/data2/www1/sample.git  #克隆一个分支

#获取下来项目并且重命名
git clone dafei@192.168.1.149:/data2/www1/sample.git dafei_project
git clone dafei@192.168.1.149:/data2/www1/sample.git 新的名字

06) 4中情况回滚代码

*************在工作区的代码
git checkout  文件名  #丢弃某个文件
git checkout  .     #丢弃全部[ 注意有个点 ]

*************添加到缓存区的代码回滚 git add 到了缓存区,没有git commit -m git reset HEAD #从缓存区回滚[ 仅仅改变缓存区,工作区不变也不会丢 ]
*************提交到本地分支,没有git push 远端, [ git reset 三种模式 ] git commit -m 到本地分支,没有git push 远端 git log --oneline #查看版本信息,版本号 git reset --hard 版本号  #回到想要的版本 [ 这个版本之后的提交信息和数据都会丢掉 ] git reset --hard HEAD^   #回到上一个版本提交 [ 这个版本之后的提交信息和数据都会丢掉 ] git reset --soft HEAD^ #回到上一个版本提交[ 回都上一个版本的缓存区, 这个版本之后的提交信息和数据都会丢掉 ] git reset HEAD^      #此时代码保留,回到git add操作之前[表示需要重新add] [ 使用了默认参数--mixed] git reset --mixed HEAD^ #效果同上一条命令[ git reset HEAD^ ] ************* 远端仓库代码回滚 [ 这个稍微麻烦点 ] 01)先把本地代码还原到指定版本,然后强制推送 git reset --hard 版本号   git push --force #[ 本地版本比远程版本低,加上--force这个参数就可以强制推送到远程 ] 02) 备份当前分支到新分支,先把本地代码还原到指定版本,然后删除远程仓库,用回退的代码推送到远程 git branch backup_备份 #备份当前分支到新分支 git push origin backup_备份 #把新分支推送到远程 git reset --hard 版本号 #把本地代码还原到指定版本 git push origin --delete 远程分支 #删除远程分支 git push origin 本地回退分支上代码 #把本地回退分支上代码推送到远程

07) Git 历史版本下载

 taobao mirrors Downlowd Git

官方地址 git-for-windows

08)打标签tag实战

记住一点: 本地和远程可以理解为单独的2类tag

git tag   #查看所有标签
git tag v1.0.0 #新建一个标签 git tag <name>  
git tag v1.0.1
git tag v1.1.0
git show v1.0.1  #查看某个标签做了什么操作

git push origin v1.0.1 #推送具体某个tag到远程
git push --tags #推送所有tag标签到远程服务端 ---或者用下面
#git push origin --tags #推送所有tag标签到远程服务端
git pull   #获取所有远程的tag标签 ---或者用下面
#git fetch  #获取所有远程的tag标签

git tag -d v1.0.1 #删除一个本地标签
git push origin :refs/tags/v1.0.2  #可以删除一个远程标签(注意这样删除后拉取不到远程删除信息)
git push origin --delete v1.0.2 #可以删除一个远程标签(注意这样删除后拉取不到远程删除信息)
git tag -l | xargs git tag -d  #删除本地所有tag

#实战demo
git tag 
git tag v1.0.0
##修正bug1
git add .
git commit -m "fei bug1"
git tag v1.0.1
git tag
##修正bug2
git add .
git commit -m "fei bug2"
git tag v1.0.2
git tag
##添加新业务功能
git add .
git commit -m "添加新业务功能added feature1."
git tag v1.1.0
git tag

 

posted on 2017-08-04 17:51  大飞_dafei  阅读(162)  评论(0编辑  收藏  举报