git常用命令

 
 
 
init
git init 初始化为git项目
 
clone
git clone <git address>  从远程克隆git 项目
 
config
git config --global user.email "you@example.com" 设置本地版本库的email
git config --global user.name "Your Name" 设置本地版本库的name
 
log
显示git提交日志
git log */test.txt 查看test.txt文件的版本历史记录
git log --pretty=oneline 查看git提交日志,每条日志只显示一行
git log -p 显示提交记录的具体内容
git log -p -2 显示最近两次提交记录的具体内容
git reflog 查看历史命令
git log --graph 查看合并图
git log --author='bonnie' 查找提交作者为bonnie的日志
 
add
git add <文件名> 将文件放从工作区放到版本库的暂存区(stage)
git add . 将所有文件从工作区放到版本库的暂存区(stage)
 
commit
git commit -m "本次提交的说明"  把文件从暂存区提交到master分支
 
diff
git diff 比较的是工作区和暂存区的差别
git diff --cached 比较的是暂存区和版本库的差别
git diff HEAD 可以查看工作区和版本库的差别 
git diff HEAD -- <文件名> 比较工作区的该文件和版本库中HEAD的区别
 
reset
git reset --hard <版本号,--hard参数:恢复HEAD索引,并且恢复工作区中提交之后的文件。
git reset --hard HEAD^ 恢复到上一个版本
git reset --hard HEAD^^ 恢复到上上个版本
git reset HEAD <文件名> 将在暂存区的修改恢复到HEAD版本
 
checkout
切换分支或者恢复工作区
$ git checkout master             (1)
$ git checkout master~2 Makefile  (2)
$ rm -f hello.c
$ git checkout hello.c            (3)
  1. 切换分支到master

  2. 将Makefile恢复到前两个版本(这里说的版本是:每add一次产生一个版本)

  3. 不小心删除hello.c,恢复hello.c

如果正好有个分支叫做hello.c,那么需要用  git checkout -- <文件名> 替换
丢弃工作区所有文件的修改,用   git checkout -- * 
git fetch 
git checkout -b dev origin/dev  在本地创建分支dev并和远程dev建立关联
 
rm
git rm 文件名 删除工作区和暂存区的此文件
 
branch
git branch 查看当前分支
git branch <分支名> 创建分支
git branch -d <分支名> 删除分支
git branch -D <分支名> 强行删除分支
git checkout -b <分支名> 创建分支并指向当前的分支
git merge <分支名> 合并分支到当前分支

stash
git stash “储藏”工作区的内容
git stash list "储藏"的列表
git stash pop 恢复stash的内容,并删除stash内容
git stash apply 恢复stash的内容,不会删除stash内容
 
 
pull

从远程或者本地获取,并合并。

合并当前分支到远程next分支:

$ git pull origin next

This leaves a copy of next temporarily in FETCH_HEAD, but does not update any remote-tracking branches. Using remote-tracking branches, the same can be done by invoking fetch and merge:

$ git fetch origin
$ git merge origin/next
 
push
 git push --set-upstream origin next
将当前分支推向远程next分支,如果next分支在远程不存在则创建该分支,推送完成后,本地当前分支会和远程next分支建立关联
 
fetch
$ git fetch origin

拷贝远程refs/heads/ namespace,并存储到本地 refs/remotes/origin/ namespace

 

posted @ 2019-07-19 13:52  第二人生Bonnie  阅读(243)  评论(0编辑  收藏  举报