local git

转载 2015年07月09日 18:44:34

1. 创建bare库

    git init -bare xxx.git

    1) bare库不会存储working tree(即仅有配置文件),容易共享,否则容易提交时发生冲突

     2) 库用.git结束只是一种惯例

2. clone it

    git clone repo/xxx.git ./working

    1)从版本库中clone出xxx.git,到本地目录working

3. add/commit/push

     push就是把本地的修改提交到版本库

     默认版本库的简写是origin

4. 回退到某一个版本

    git reset --soft HEAD^1  //向前回退一个版本(本地文件还没修改,只是修改 git中的head指针,可以用来缩短版本路径)

    git reset --hard HEAD^1  //向前回退一个版本(文件修改将被丢弃,修改 git中的head指针)

    如果仅仅是取回老版本,不影响仓库,可以用checkout

    git checkout  commitid ./   //导出当前的commitid,注意checkout会清空working path中的修改,不可恢复


5. git要在不同机器上share,需要有ssh sever,git依赖ssh共享


===========================================================================================================

1. a.txt 没有 add 想撤销修改
   git checkout -- a.txt
2. 和远程库同步
   git fetch origin
   git merge origin/master
   A.  上述两个命令都是缺省了当前分支,比如当前分支是master,则第一个命令的完全形式是
       git fetch origin master
   B.  如果有其他人修改远程库,上述命令可能出发一次merge,如果没有冲突直接merge即可
3. 查看本地分支
   git branch
   以*号开头的是当前分支
4. 查看远端分支
   git branch -r
5. 查看工作目录的修改
   git diff
6. 查看被缓存的修改(用了add命令的)
   git diff --cached


============================================================================================================

git branch -a
查看分支,远程分支用红色表示(如果支持颜色)

git ls-remote --tags origin
查看远程tags git show [tagname] 显示tags信息

1.创建本地分支

git branch 分支名,例如:git branch bfa.x.y
bfa.x.y是分支名称

2.切换本地分支
git checkout 分支名,例如从master切换到分支:git checkout bfa.x.y

3. 推送branch 转自
在分支上执行: git push origin bfa.x.y
注意:最后必须是分支名称,master可以看作是一个特殊分支

master其实是一个“refspec”,正常的“refspec”的形式为”+<src>:<dst>”,冒号前表示local branch的名字,冒号后表示remote repository下 branch的名字。
注意,如果你省略了<dst>,git就认为你想push到remote repository下和local branch相同名字的branch。听起来有点拗口,再解释下,push是怎么个push法,
就是把本地branch指向的commit push到remote repository下的branch,比如

$git push origin master:master (在local repository中找到名字为master的branch,使用它去更新remote repository下名字为master的branch,
如果remote repository下不存在名字是master的branch,那么新建一个)

$git push origin master (省略了<dst>,等价于“git push origin master:master”)

$git push origin master:refs/for/mybranch (在local repository中找到名字为master的branch,用他去更新remote repository下面名字为mybranch的branch)

$git push origin HEAD:refs/for/mybranch (HEAD指向当前工作的branch,master不一定指向当前工作的branch,所以我觉得用HEAD还比master好些)

$git push origin :mybranch (再origin repository里面查找mybranch,删除它。用一个空的去更新它,就相当于删除了)


=========================================================================================================
转载源
git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相仿。

$ git push <远程主机名> <本地分支名>:<远程分支名>

注意,分支推送顺序的写法是<来源地>:<目的地>,所以git pull是<远程分支>:<本地分支>,而git push是<本地分支>:<远程分支>。

如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。
$ git push origin master
上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。
$ git push origin :master
# 等同于
$ git push origin --delete master
上面命令表示删除origin主机的master分支。





$git log --stat

 显示每次提交时修改文件的列表


$git log --graph --pretty=format:'%Cred%h%Creset @%C(yellow)%d%Creset %n Author: %cn %ce %n Date: %cd %Cblue(%cr)%Creset %n %n Commit subject: %Cgreen%s%Creset %n'
 修改输出格式,很花哨...


$git config --global alias.lg "log --graph --pretty=format:'%Cred%H%Creset @%C(yellow)%d%Creset %n Author: %cn %ce %n Date: %cd %Cblue(%cr)%Creset %n %n Commit subject: %Cgreen%s%Creset %n'"

增加别名lg,以后直接输出git lg 就相当于输出上面一长串




同步远程库到本地,但不修改本地工作目录

git fetch

然后单个文件

git checkout origin/master -- filepath



放弃本地修改,强制同步远程分支

git fetch --all
git reset --hard origin/[分支名]

这种方式不会有merge的过程



===================================================================

远程已经删除了分支,但是branch -a 依然显示有该分支

git remote show origin

可以看到有些分支已经不存在,按照提示用

git remote prune origin
删除这些分支

相关文章推荐

git checkout : You have local changes cannot switch branches&Entry would be overwritten by mege

摘要:分支切换在git的使用中可谓是最重要的部分之一,而git checkout还经常被用于回滚当前工作目录——当然,也被用来做 分支切换。因此,这是出错率极高的命令。本文主要为你解析git chec...

git—local--ssh

和其他的版本控制程序不同的是,git一直维护一个本地仓库,不存在一个远程的中心仓库。 git init 初始化会在本地目录建立一个 .git 隐藏文件夹 git config --gl...

Interactive between local repository and remote repository in git

Interactive between local repository and remote repository in git
  • myxyhg
  • myxyhg
  • 2016年06月29日 23:17
  • 131

使用git创建local branch并push到远程

Creating Remote Branches git branch用得也不是很多,但有时候要用的时候往往会忘记,现将创建远程分支的过程列举如下: 一,确认我们所在的分支 elison...

Git-命令行-拯救“Your local changes to the following files would be overwritten by checkout”

前言有些时候,当我们使用 git checkout 命令切换分支的时候,有时会切换失败,然后出现以下的提示信息:提示信息说的很清楚, 当前分支有未跟踪的文件,checkout 命令会覆盖它们,请缓...

GIT Error pulling: Your local changes to the following 解决GIT PULL冲突

作用: 解决GIT
  • Ufeitxt
  • Ufeitxt
  • 2014年09月24日 09:18
  • 453

PCI Local Bus Specification Revision 3.0

  • 2016年07月23日 15:24
  • 3MB
  • 下载

Local likelihood estimation

  • 2016年01月02日 17:15
  • 1.07MB
  • 下载

Nginx 安装/配置/启动/关闭-默认安装到/usr/local/nginx/

打开配置文件,看到有这一行“include vhosts/*.conf; 他这里又包含了vhosts文件夹下的所有配置文件。于是多域名配置就可以在这个文件夹里任意添加了。 [r...

local文件夹

  • 2017年02月27日 16:45
  • 55B
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:local git
举报原因:
原因补充:

(最多只允许输入30个字)