git--笔记

2017-03-20  本文已影响0人  冥冥2017

git add 文件时,出现报错
LF will be replaced by CRLF in 文件夹
这是由于windows中的换行符为CRLF,而linux中为LF
所以需要首先,删除git:
$ rm -rf .git //删除.git
$ git config --global core.autocrlf false//禁用自动转换
然后重新执行
$ git init
$ git add 文件

第一步是

$ git add ——————add每次一个

第二步是

$ git commit —————commit一次可以提交很多文件
git commit 一般跟一个-m"说明在此"


$ git status查看状态
$ git diff查看不同
$ git diff HEAD -- 文件 可以查看工作区和版本库的最新版本的区别
$ git log查看日志------从最近到最远-----可以加上参数--pretty=oneline(漂亮的一行展示)
日志内可以看到commit id(版本号)

重点来啦

HEAD表示当前版本
HEAD^上一个版本
HEAD^^上上个版本
HEAD~100——上100个版本

版本回退:$ git reset --hard HEAD^
$git reset --hard 3553634(某个版本号)

$ git reflog 展示了commit id


第一次修改-->git add -->第二次修改-->git commit

第二次的修改没体现在commit中

第一次修改-->git add -->第二次修改-->git add-->git commit

第二次的修改体现了

$ git checkout --filename 注意,checkout还有别的功能
丢弃工作区的修改,2种情况:
1、修改后还未放到暂存区,撤销,工作区变为和版本库一模一样
2、修改添加至暂存区后,又修改,撤销,则目前和暂存区一样

总之,是回到最近一次 git commit ####或者####git add 的状态

$ git reset HEAD filename (HEAD表示最新的版本)
撤销暂存区的修改
接下来再加一步, $ git checkout -- filename 清理工作区


删除操作 $ rm filename------删除的是工作区
A/ $ git rm filename -------将删除操作提交至暂存区
$ git commit-----提交修改,此文件版本库内页被删除了
B/$ git checkout -- filename把误删的文件恢复到最新版本(还原操作)

本地库链接至远程仓库:

  1. github上创建新项目
  2. 在本地仓库运行命令进行关联

$ git remote add origin git@github.com:名字/项目名字.git

3.把本地内容推送上去

$ git push -u origin master

此处遇到一个问题,由于我新项目创建了readme,然而本地没有,git push失败了,加一个命令:

git pull --rebase origin master

把远程仓库的readme加载到本地,然后就可以了

4 . 以后有修改,就可以简化提交

$ git push origin master

克隆远程库

$ git clone git@github.com:名字/项目名字.git
地址还有http格式: http://github.com/名字/项目.git

创建与合并分支

git checkout -b dev ——新建分支dev并切换到该分支
git branch dev——新建分支dev
git checkout dev——切换到该分支
git branch——查看分支

在该分支上工作,git add --git commit
接下来切换到主干, $ git checkout master
把分支工作合并到主干 $ git merge dev
删除分支 $ git branch -d dev
删除一个没有被合并过的分支 $ git branch -D dev
有冲突时git log --graph可以看到分支合并图

git log 查看日志信息后,按 q退出
合并分支时,禁用Fast forword可以看出分支信息
git merge --no-ff dev


git stash 把当前工作现场 “储藏” 起来
git stash list 查看储藏的内容--git stash apply stash@{0}
git stash apply 恢复,git stash drop扔掉stash内容
或者,git stash pop 恢复后同时删除stash


查看远程仓库信息 git remote / git remote -v(更详细)
推送到远程master ------git push origin master
推送到远程dev ------git push origin dev


另一个小伙伴,首次操作时:

  1. git clone git@github.com:名字/项目.git
  2. 查看本地时只有master分支 因此要创建远程origin的dev分支到本地
    git chckout -b dev origin/dev
    小伙伴提交了更新的dev后,我本地推送上去会失败,因为进度落后了
    因此,先git pull 把最新进度从origin/dev上抓下来,
    但是要指定本地dev与远程origin/dev的链接,设置:
    git branch --set-upstream-to=origin/dev dev
    然后在本地合并,解决冲突,再推送git pull origin dev
    可能会遇到奇怪界面:请输入提交消息来解释为什么这种提交是必要的什么的
    解决:按esc ----- 输入 :wq
    接下来就可以 git pull origin dev了

标签

git tag v1.0
git tag v0.9 +commitid 打在某个版本上
git tag 查看标签
标签按字母排序,查看标签信息:git show v0.9
-a 指定标签名 -m指定说明文字
git tag -a v1.0 -m"说明" commitid
git show v1.0
删除标签 git tag -d v1.0
推送标签到远程: git push origin v1.0
一次推送所有标签 git push origin --tags
删除远程标签 :先删除本地:git tag -d v1.0 再删远程 : git push origin :refs/tags/v1.0


参与开源项目
在别人的项目上,fork一个到自己的账号
然后在本地 git clone +地址
可以pull request 给官方仓库贡献代码


配置别名
git config --global alias.st status 用st代表status
co---checkout
ci----commit
br-----branch
last----log -1
lg------log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

上一篇下一篇

猜你喜欢

热点阅读