设置全局仓库用户名
git config --global user.name "zf192"
设置全局仓库邮箱
git config --global user.email "464406607@qq.com"
git init 初始化当前文件夹被git管理(当前文件夹为工作区)
git add xxx.php 添加到暂存区(.git下面的index指针文件指向的区域)
git commit -m 'xxx.php提交' 提交到本地仓库并注释提交信息
git commit -a 直接从工作区提交到本地仓库
git push 从本地仓库提交到远程仓库(github)
git status 查看是否还有文件未提交
git diff xxx.php 查看修改的内容(异同
git log 查看历史记录,可以查看最近两次修改
git log --pretty=oneline 查看更多历史信息
版本回退
git reset --hard HEAD^ 回退到上个版本
git reset --hard HEAD^^ 回退到上上个版本
git reset --hard HEAD^^^ 回退到上上上个版本
...以此类推
git reset --hard HEAD~100 回退到前100个版本
什么?吃了后悔药后又后悔?
通过版本号回到最新的那个版本
git reset --hard 版本号 回退到指定版本号时的代码
git reflog 获得版本号
查看文件内容
cat xxx.php
撤销工作区的修改
git checkout -- readme.txt
1. readme.txt自动修改后,还没有放到暂存区,使用 撤销修改就回到和版本库一模一样的状态。
2. 另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态。
rm xxx.php 在工作区中删除xxx.php
git checkout -- xxx.php 在工作区中恢复被删除了的xxx.php
创建SSH key,
ssh-keygen -t rsa -C "464406607@qq.com"
在windows用户主目录下生成.ssh文件夹,文件夹下生成id_rsa(私钥)和id_rsa.pub(公钥)这两个文件
远程仓库(github)
GitHub上建立一个空仓库的,GitHub告诉我
们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓
库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
现在,我们根据GitHub的提示,在本地的testgit仓库下运行命
令:
git remote add origin https://github.com/zf192/testgit.git
git push -u origin master
输入帐号,和填上密码弹出框 上传成功
从现在起,只要本地作了提交,就可以通过如下命令:
git push origin master
把本地master分支的最新修改推送到github上了,现在你就拥有了
真正的分布式版本库了。
把本地库的内容推送到远程,使用 git push命令,实际上是把当前
分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了 –u参
数,Git不但会把本地的master分支内容推送的远程新的master分
支,还会把本地的master分支和远程的master分支关联起来,在以
后的推送或者拉取时就可以简化命令。
克隆远程仓库
把在d:\www目录远程仓库克隆到本地
git clone https://github.com/zf192/testgit2.git
在项目下生成testgit2目录,并且克隆了远程仓库下testgit2中的所有文件,文件夹
六创建与合并分支
master分支是主分支
dev分支是开发分支,在dev下开发,master上合并(dev分支是自定义分支名,master是默认主分支)
git checkout -b dev 创建dev分支,并切换到dev分支上相当于以下两条命令
git checkout dev 切换到dev分支
git checkout master 切换到master分支
查看分支
git branch
在dev分支下的操作,切换到master分支是更改是不同的
在master分支下合并dev分支才能使数据同步
git merge dev 合并指定分支到当前分支上
删除分支
git branch -d dev
创建与合并分支命令总结如下
查看分支:git branch
创建分支:git branch name
切换分支:git checkout name
创建+切换分支:git checkout –b name
合并某分支到当前分支:git merge name
删除分支:git branch –d name
分支管理策略
通常合并分支时,git一般使用”Fast forward”模式,在这种
模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –
no-ff来禁用”Fast forward”模式。
多人协作
当你从远程库克隆时候,实际上Git自动把本地的master分支和远程
的master分支对应起来了,并且远程库的默认名称是origin
创建远程origin的dev分支到本地来
chechout -b dev origin/dev
把dev分支推送到远程去
git push origin dev
因此:多人协作工作模式一般是这样的:
1. 首先,可以试图用git push origin branch-name推送自己的
修改.
2. 如果推送失败,则因为远程分支比你的本地更新早,需要先用
git pull试图合并。
3. 如果合并有冲突,则需要解决冲突,并在本地提交。再用git
push origin branch-name推送。
git常用命令
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐
藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到
上一个版本
(如果想回退到100个版本,使用git reset –hard
HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout -- XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin
https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前
master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit 从远程
库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应
的远程分支上
|
|