git

创建一个git仓库(服务):

git init --bare runoob.git

http://www.runoob.com/git/git-server.html

本地提交:

git add file/dir/./*       交互式添加文件到暂存区:git add -i
git commit -m “提示”
git checkout .

远程:

git remote add origin git@github.com:michaelliao/learngit.git   ssh支持的原生git协议  速度快

git remote add origin https://github.com/daduryi/git_learn.git  https协
   (remote add 用于你还没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器)

git remote 查看远程库信息(名称 origin [ˈɔ:rɪdʒɪn] 起源)  git remote -V

git clone git@github.com:daduryi/git_learn.git(只克隆到了master分支)
推送:

git push -u origin master
  
-u 并进行关联,用于第一次
  git push origin master
   git push -f <remote> <branch>     强制你的本地分支,以便覆盖远程的分支 --force

git push origin --delete product-bug

删除文件:

rm file

git rm file 并且 git commit
分支

git checkout -b dev  从当前创建并切换到dev分支,相当于以下两条命令:

git brach dev 创建

git checkout dev 切换

git branch 查看分支

git branch -a 查看所有分支

git branch -d dev 删除dev分支

git brash -D dev 强力删除未合并的分支

git checkout -b dev origin/dev 创建远程的dev分支到本地

git branch查看所有分支,当前分支带*  -a所有
更新pull与合并merge

git pull 在你的工作目录中 获取(fetch) 并 合并(merge) 远端的改动。

git pull -r (–rebase)使用 git pull --rebase 主要是为是将提交约线图平坦化,而 git merge --no-ff 则是刻意制造分叉。

git pull origin next:master 取回origin主机的next分支,与本地的master分支合并

git merge dev 合并指定分支dev到当前分支(有时需要解决冲突,修改冲突后需要add commit,然后自动执行失败的merge) --no-ff强制不是用Fast forward

git diff <source_branch> <target_branch> 在合并改动之前,你可以使用如下命令预览差异

git diff file 查看工作区和暂存区的区别

git diff HEAD – file 查看工作区和版本库的区别

stash

git stash 将工作现场存储起来(多用于去修复master临时出现的bug),等以后恢复现场后继续工作

git stash apply 应用储藏, 然后git stash drop删除stash内容)或者(git stash pop 恢复并删除stash) stash [stæʃ] 藏匿

git stash list列出存储的现场

git stash apply stash@{0},恢复指定stash

https://git-scm.com/book/zh/v1/Git-工具-储藏(Stashing)

替换本地改动(回退):

git checkout – file    丢掉工作区的修改,让这个文件回到最近的一次git commit或git add的状态,没有–就表示切换分支 新文件都不会受到影响

git reset HEAD file    可以把暂存区的修改撤销掉(即撤销add的,重新回到工作区)

reset --hard commit_id  本地版本回退

假如你想丢弃你在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将你本地主分支指向它:
git fetch origin 或者
git reset --hard origin/master

git status

log:

git log

--pretty=oneline 一个压缩后的每一条提交记录只占一行的输出

--graph 查看分支合并图

--abbrev-commit简化command id

--decorate --all每个分支都标示了他的名字和标签)

--author=bob  只看某一个人的提交记录

--name-status  看看哪些文件改变了

git log --graph --pretty=oneline --abbrev-commit查看分支情况

git reflog 查看命令历史,以便确定回到未来的哪个版本

git log --help

标签:

git tag 1.0.0 1b2e1d63ff        git tag -a v1.4 1b2e1d63ff -m 'my version 1.4'  推荐带m的
git tag     git tag -l 'v1.4.2.*'       git show v1.4
git push origin [tagname]    默认情况下,git push 并不会把标签传送到远端服务器上       git push origin --tags(所有的标签)
git tag -d 标签名  

https://git-scm.com/book/zh/v1/Git-基础-打标签

概念:

工作区workspaces:  电脑里能看到的目录,如git_learn目录

暂存区stage/index:

版本库:  .git目录 在.git目录中存在暂存区,称为stage或index; master分支; 以及指向master的一个指针HEAD

add从workdir到stage,commit从stage到master

0、设置账号

$ git config --global user.email "lixuening7115@163.com"
$ git config --global user.name ‘daduryi’
远程:
1、ssh-keygen -t rsa -C "name@163.com"
2、登录GitHub,打开“Account settings", SSH KEYS页面;点add ssh key,填上title,粘贴id_rsa.pub文件内容

解释:

1、在Git中,用HEAD表示当前版本,上一个版本用HEAD,上上个版本用HEAD^,当前网上100个版本HEAD~100

2、fast forward模式 merge后看不出做过合并,no-ff能看出来,所以ff模式删除分支后会丢掉分支信息。

3、合作开发时,master用来发布新版本,dev用来干活,每个人在自己分支上干活,时不时往dev上合并。

创建bug分支修复bug,多用到git stash

当从远程库克隆时,实际上git自动把本地分支master和远程master分支对应起来,并且远程库的默认名称是origin

主分支master 开发分支dev需要推送远程, 其他分支看需不需要大家合作(是否推送的原则)

参考:

http://rogerdudler.github.io/git-guide/index.zh.html

查看git配置信息

怎么看我的git的远程地址?

git config --global --list

GIT-查看config配置信息

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值