git命令 学习总结


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

配置

全局配置

git config --global user.name ming.ma   用户名
git config --global user.email ming.ma@mixiu.cn  邮箱

git config --global color.ui always/true  颜色提示

git config --global core.ignorecase false  设置 git 为大小写敏感

针对项目配置

git config  user.name ming.ma   用户名
git config  user.email ming.ma@mixiu.cn  邮箱


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 log --graph  查看图形化记录

git log --stat 显示修改的文件


修改提交信息
git commit --amend

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

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

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

移动/修改名字   

git mv

修改文件名大小些

git mv --force name Name


暂存区转到修改区(恢复暂存区快照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 checkout -b a b  以 b 为基础创建 a 分支,并切换到 a 分支


查看分支     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 cherry-pick f79b01ef 合并 commit


git rebase   衍合--->将一个分支的改变加到另一个分支(Push过的分支绝对不要rebase!)
有冲突,处理好了,可以运行git rebase --continue继续直到完成

放弃rebase过程(运行git rebase --abort),直接用test分支的取代当前分支的(git rebase --skip)。

 git rebase -i HEAD~2 合并最后两个分支为一个分支(pick => s)



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 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’来将栈清空


git submodule 子项目管理

git submodule add

git submodule add git@git:xxx 添加子项目

git clone git@git:xxx --recursive      clone 时初始化 submodule

git clone git@git:xxx

cd xxx

git submodule init

git submodule update


git submodule foreach git pull 更新子项目


  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值