Git安装
Git配置用户信息:
git config –global user.name “SCOTT”
git config –global user.email [email protected]
Git激活仓库
cd newDir
git init
Git查看当前状态
git status
Git比较与修改后文件的差异
git diff
Git添加修改后的文件
git add files
Git提交修改的文件
git commit -m “modify message”
Git查看历史操作记录
git log—查看提交历史
git log –pretty=oneline
git reflog—可以用来查看未回退之前的版本号 然后用git reset –hard 版本号来恢复
Git版本回退
HEAD代表当前版本 HEAD^表示上一版本 HEAD^^表示上上版本… 如果100呢?HEAD~100
git reset –hard HEAD^
Git撤销文件修改
git checkout – file可以丢弃工作区的修改
git reset HEAD file可以把暂存区的修改撤销掉(unstage)
git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
Git远程克隆
如果想对某个开源项目出一份力,可以先把该项目的 Git 仓库复制一份出来,这就需要用到 git clone 命令
克隆仓库的命令格式为 git clone [url]
如:
git clone git://github.com/schacon/grit.git
git clone [email protected]:xxx/Test.git—会在本地当前目录建立一个Test文件夹与之同步。
代码修改后 本地add commit 最后同步到远程仓库:git push origin master
Git远程同步(使用github)
要关联一个远程库,使用命令git remote add origin [email protected]:path/repo-name.git;
关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在
没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!
下面是摘录的网上的一个:
1.创建一个新的repository:
先在github上创建并写好相关名字,描述。
$cd ~/hello-world //到hello-world目录
$git init //初始化
$git add . //把所有文件加入到索引(不想把所有文件加入,可以用gitignore或add 具体文件)
$git commit //提交到本地仓库,然后会填写更新日志( -m “更新日志”也可)
$git remote add origin [email protected]:WadeLeng/hello-world.git //增加到remote
$git push origin master //push到github上
2.更新项目(新加了文件):
$cd ~/hello-world
$git add . //这样可以自动判断新加了哪些文件,或者手动加入文件名字
$git commit //提交到本地仓库
$git push origin master //不是新创建的,不用再add 到remote上了
3.更新项目(没新加文件,只有删除或者修改文件):
$cd ~/hello-world
$git commit -a //记录删除或修改了哪些文件
$git push origin master //提交到github
4.忽略一些文件,比如.o等:*
$cd ~/hello-world
$vim .gitignore //把文件类型加入到.gitignore中,保存
然后就可以git add . 能自动过滤这种文件
5.clone代码到本地:
$git clone [email protected]:WadeLeng/hello-world.git
假如本地已经存在了代码,而仓库里有更新,把更改的合并到本地的项目:
$git fetch origin //获取远程更新
$git merge origin/master //把更新的内容合并到本地分支
6.撤销
$git reset
7.删除
$git rm * // 不是用rm
//——————————常见错误———————————–
1.$ git remote add origin [email protected]:WadeLeng/hello-world.git
错误提示:fatal: remote origin already exists.
解决办法:$ git remote rm origin
然后在执行:$ git remote add origin [email protected]:WadeLeng/hello-world.git 就不会报错误了
- $ git push origin master
错误提示:error:failed to push som refs to
解决办法:$ git pull origin master //先把远程服务器github上面的文件拉先来,再push 上去。
//——————————————————————————