git命令行常用操作

参考 廖雪峰的git教程


mac上使用git必须要用Xcode,这点很不爽……

创建仓库

git init

添加文件

git add 文件名(可用空格隔开)

commit文件

git commit -m “描述”

  • 禁用fast-faword ,使用 git merge –no-ff -m “description” branch-name
  • da

显示仓库文件状态

git status

  • 简写git st

显示修改的内容

git diff
git diff file

版本回退

  • git reset –hard head^
  • git reset –hard head~100
  • git reset –hard commit id
    • head代表当前版本,head^代表上个版本,head^^代表上两个版本,也可以用~加上数字表示之前的版本
    • commit id代表每个版本的id号

日志记录

git log

  • git log –prety==oneline 命令代表简要显示,即版本号和描述
  • git log -graph 时间轴形式显示

命令记录

git reflog

丢弃修改

git checkout – <file>

  • --命令表示丢弃修改,不添加的话,checkout表示切换分支
  • 让这个文件回到最近一次 git commit 或 git add 时的状态
    • 如果修改后没有添加到暂存区,则回退到版本库
    • 如果放到暂存区后,又做了修改,则回退到暂存区内的状态
  • git reset HEAD <file> 把暂存区的修改撤销掉(unstage),重新放回工作区,即取消本次add操作

删除文件

git rm

  • 文件删除后可用版本回退,从版本库中获取到最新版本的文件

远程仓库

添加远程库

git remote add origin git@server-name:path/repo-name.git

推送至远程库

git push -u origin master

  • 使用-u命令使本地master和远程master分支关联
  • git push origin master

克隆远程仓库

git clone

##多人协作

查看远程信息
git remote

  • git remote -v 查看详细信息

推送至远程
git push origin master

  • git push origin dev 推送至其他分支

获取最新提交
git pull(git pr)
git fetch


分支管理

查看分支

git branch

创建分支

git branch <name>

切换分支

git checkout <name>

创建并切换

git checkout -b <name>

合并至当前分支

git merge <name>

删除分支

git branch -d <name>

查看分支合并情况

git log –graph


BUG分支

存储工作区

git stash

参看工作区存储情况

git stash list

恢复工作区

git stach apply 恢复而不删除存储
git stash pop 恢复并且删除存储


其他

  • HEAD指针指向当前版本

管理修改

  • 暂存区和工作区
    • add 添加文件到暂存区
      • 如果不进行add,不会进入暂存区,就无法通过commit进行提交
    • commit提交暂存区内的所有修改
      • 提交之后暂存区将清空

撤销修改

  • 1.修改了文件,但是没有添加到暂存区
    • 使用git checkout – 撤销至最近一次add或者commit
  • 2.修改了文件,并且已经添加到暂存区
    • 使用git reset HEAD 撤销本次add操作,再使用第一种方法进行撤销
  • 3.修改了文件,并且已经提交
    使用git reset –hard head/commit_id进行版本回退