GIT学习笔记

来源:互联网 发布:怎么在淘宝上做代销 编辑:程序博客网 时间:2024/05/22 14:42
git 命令:
git版本号:
    git --version
设置用户名及邮箱地址
    git config --global user.name "zhanghongwei"
    git config --global user.email zhanghongwei@shangpin.com
自动创建一个工作目录并创建版本库
    git init demo
添加一个文本
echo "Hello." > welcome.txt
将新建的文件添加到版本库中
git add welcome.txt
提交说明及文件
git commit -m "initialized."
搜索工作区的文件内容
git grep "Hello"
查询工作区状态
git status
git status -s 
显示版本库.git目录所在的位置
git rev-parse --git-dir
显示工作区根目录
git rev-parse --show-toplevel
相对于工作区根目录的相对目录
git rev-parse --show-prefix

gitconfig命令
版本库级别的配置文件
git config -e 
全局配置文件
git config -e --global
系统级配置文件
git config -e --system
配置参数
git config a.b something
输出提交日志
git log --pretty=fuller
查看提交日志 --stat参数可以看到每次提交的文件变更统计
git log --stat
查看刚刚完成的提交
git log --graph --oneline
查看提交历史
git log ---oneline



工作区与暂存区的区别
git diff 
工作区和HEAD比较
git diff HEAD
暂存区和HEAD比较
git diff --cached

查看目录树
git ls-tree -l HEAD

查看对应的ID信息
git cat-file -p id

显示当前的分支
git status -s -b 
git branch

游标ID
cat .git/refs/heads/master

重置命令(少用)
git reset --hard HEAD^
git reset --hard e9a549d

查看分支日志文件
tial -5 .git/logs/refs/heads/master
git reflog show master | head -5

恢复到两次改变之前的值
git reset --hard master@{2}


git reset --hard 
git reset --soft
git reset --filename 相当于git add filename的反向操作

撤销最新的提交以便重新提交
git reset --soft HEAD^



git checkout master
git merge id
git log --graph --pretty=oneline

git checkout 命令
git checkout  对工作区 进行状态检查
git checkout feature-2.6.5.2切换分支
git  checkout -- filename 用暂存区中filename文件来覆盖工作区中的filename文件。相当于取消自上次执行的git add filename以来(如果执行过)的本地修改。
git checkout  . 这个命令最危险 会取消所有的本地修改ia。相当于用暂存区的所有文件直接覆盖本地文件
git checkout -q


git reset 重置的是暂存区  除非加上--hard 会重置工作区
git checkout--path 重写工作区 

未提交文件或目录的删除
git clean -nd 查看需要删除的文件或者目录
git clean -fd  强制删除多余的目录和文件 未提交

git 进度

git stash 保存进度
git stash list 查看保存的进度
git stash pop 从最近的保存进度进行恢复
git stash apply
git stash drop 删除一个存储进度
git stash clear 删除所有存储的进度

查看 git命令文件地址 
git --exec-path
查看暂存区的文件
git ls-files
git ls-files --with-tree=HEAD^


删除文件
git rm 
rm 
git reset --hard HEAD^ 
git add -u 本地文件的修改  删除 全部记录到暂存区中
 
恢复删除的文件
git checkout HEAD~1 -- welcome.txt
git add -A
git commit -m ""

移动文件
改名
git mv welcome.txt README

选择性添加文件 git add -i 

查看累计提交次数
git rev-list HEAD | wc -l


版本表示法 git rev-parse
git rev-parse --symbolic --branches 显示分支
git rev-parse --symbolic --tags 显示里程碑
git rev-parse --symbolic --glob=refs/*  显示定义的所有引用

悔棋
单步悔棋
git commit --amend -m "Remove xx" 
可以改变 最新一次的提交说明
git checkout HEAD^ 返回上次提交

首先重置到之前的提交
然后在一起提交就实现了多步悔棋
git reset --soft HEAD^^
git commit -m "sdfsdfsdfds"

git merge --abort
拣选命令实现提交在新的分支上重放
git cherry-pick 

git clone a b

git show-ref 查看所包含的引用
git pack-refs -all
head -5 .git/packed-refs

显示隐藏文件夹
ls -af
ls --full-time .git/index



多用户协同的本地模拟
1. git init --bare /e/testgit/repos/shared.git
2.cd /e/testgit/user1/workspace
   git clone file:///e/testgit/repos/shared.git project
3.cd project
  git config user.name=user1
  git config user.email=user1@shangpin.com
4.echo Hello. > README
   git add README
   git commit -m "initial commit."
5.git push origin master
6.cd /e/testgit/user2/workspace
   git clone file:///path/to/repos/shared.git project
7. cd /e/testgit/user2/workspace/project
    git config user.name user2
    git config user.email user2@shangpin.com
8.git log


git rev-list HEAD
显示远程版本库的引用对应的SHA1哈希值
git ls-remote origin 

pull 包含了两个动作:获取远程版本哭的最新提交以及将获取到的远程版本库提交与本地提交进行合并

push

禁止非快进式推送
git --git-dir=/e/testgit/repos/shared.git config receive.denyNonFastForwards true


0 0
原创粉丝点击