首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

git下令 学习总结

2012-12-17 
git命令学习总结远程仓库通常只是一个_裸仓库(bare repository) 即一个没有当前工作目录的仓库。因为该仓库

git命令 学习总结

远程仓库通常只是一个_裸仓库(bare repository) 即一个没有当前工作目录的仓库。因为该仓库只是一个合作媒介,所以不需要从硬盘上取出最新版本的快照;仓库里存放的仅仅是 Git 的数据。简单地说,裸仓库就是你工作目录中 .git 子目录内的内容。

配置
git config --global user.name lutao   用户名
git config --global user.email tao.lu@mixiu.cn  邮箱
git config --global color.ui always/true  颜色提示

git --bare init testproj  创建裸仓库并初始化
git push /data/git/ming.ma/student/ master:master  提交到远程裸仓库

mkdir MyProject   创建目录
cd MyProject

git init 开始使用git

创建文件
touch README

保存到暂存区
git add README

查看状态
git status

修改文件
echo “readme” > README

再保存到暂存区
git add README

查看修改内容,显示索引区与git仓库之间的差异(已保存到暂存区的,即:Changes to be committed:)
git diff –-cached

查看修改内容, 显示工作目录与索引区文件之间的差异(未保存到暂存区的,即:Changed but not updated:)
git diff
     
git diff HEAD   显示工作目录与git仓库之间的差异(commit 之后)
        git diff HEAD^  比较上次提交
        git diff HEAD~2 比较上2次提交
        --name-only 只查看文件名
        --stat=width  设置文件名的宽度显示
 git diff commit1 commit2 将2次提交的内容进行对比
等价于
 git diff commit1..commit2 如果省略任意一个commit,默认将使用HEAD代替

commit可以是简写的commit哈希值,也可是是HEAD。
HEAD代表最后一次提交,HEAD^代表最后一次提交的父提交,HEAD~1>等价于HEAD^,HEAD~2为倒数第二次提交,以此类推。
    结果显示:
    @@ -1,2 +1,2 @@
    1,2表示从第1行起修改了2行
    -表示修改前的
    +表示修改后的
    @@ -5,16 +11,10 @@
    从第5行开始的16行内容 和 从11行开始的10行内容

提交,-m 附加提交信息
git commit -m “Inital commit” (-a 提交所有改变的文件)

查看全部提交信息
git log

显示版本历史以及版本间的内容差异
git log -p

只显示最近几个提交
git log -n

一行显示(简略)
git log --oneline

修改提交信息
git commit --amend

git commit -C HEAD -a --amend   补增提交,不会产生新的提交记录
           -c                   可以修改提交信息   

删除已保存到暂存区的
git rm -rf

删除未保存到暂存区的(修改区)
rm -rf

移动/修改名字   
git mv

暂存区转到修改区(恢复暂存区快照git reset HEAD  + (上一次commit)哈希串前6位)
git reset HEAD

reset命令有3种方式:

    git reset -–mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息(add之前)

    git reset -–soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可(commit之前)

  撤销提交
  git reset --soft HEAD^
  git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容


已修改转到未修改(恢复修改区的本地文件)
git checkout

创建分支                +  转到我的分支            =   创建分支并转到我的分支
git branch my_branch       git checkout my_branch      git checkout -b my_branch

查看分支     git branch  查看远程分支 git branch -r  
                       
转到默认(master)分支     git checkout master

删除我的分支        git branch -d my_branch (-D 强制删除)

git merge  my_branch   合并分支
git merge -v     可以看到最后一次提交日志
git --merged或 git --no-merged  来查看分支是否已经合并完成。


git rebase   衍合--->将一个分支的改变加到另一个分支(Push过的分支绝对不要rebase!)
有冲突,处理好了,可以运行git rebase --continue继续直到完成
放弃rebase过程(运行git rebase --abort),直接用test分支的取代当前分支的(git rebase --skip)。

git clone git://github.com/schacon/ticgit.git 克隆一个已经存在的远程git仓库
git clone /data/git -b newmaster              克隆指定分支(默认master)
git remote  查看远程仓库(-v 查看克隆地址)

git remote add pb git://github.com/paulboone/ticgit.git   添加远程仓库==》git fetch pb

git fetch  git clone git pull 区别:
git fetch是在本地已有的git仓库基础上抓取
git clone是把远端的git仓库克隆到本地,(本地原本不存在git仓库)
git pull = git fetch + git merge
git pull 远程地址 远程分支:本地分支
或git pull origin 远程分支:本地分支
git log --graph  查看图形化记录

git push origin master:new_master 上传

git push origin :new_master 删除远程分支

git gc 垃圾收集
git stash
当你不想提交当前完成了一半的代码,但是却不得不修改一个紧急Bug,那么使用’git stash’就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用’git stash apply’将以前一半的工作应用回来。

当你多次使用’git stash’命令后,你的栈里将充满了未提交的代码,这时候你会对将哪个版本应用回来有些困惑,’git stash list’命令可以将当前的Git栈信息打印出来,你只需要将找到对应的版本号,例如使用’git stash apply stash@{1}’就可以将你指定版本号为stash@{1}的工作取出来,当你将所有的栈都应用回来的时候,可以使用’git stash clear’来将栈清空

热点排行