Git-study

作者: 姜酱i | 来源:发表于2018-12-22 19:36 被阅读0次

    git的优势:不用联网就可以工作、远程仓库、强大的分支管理。

    基本操作:mkdir(创建文件夹)、cd(退出或进入文件夹)、ls(显示当前文件夹的子文件夹)、pwd(显示当前所在的文件夹位置)、vi wu.txt(创建wu.txt文本文档)、git init(将所在的文件夹设置成为repositor(仓库))、ls -ah(查看隐藏起来的git文件夹)git status(时刻掌握仓库当前的状态)git commit -m'注释'(提交记录) git diff(查看具体修改了什么)

    git时光机(版本回溯):

    git log(查看最近修改的版本)便于回溯版本查看注释  git reset --hard HEAD^ or git reset --hard HEAD~number(回溯到那个版本) ,假如已经回溯到了上一个版本那么怎么回到当前版本呢(git bash窗口还没关闭可以挽救),git reset --hard commit-id(git log可查看)。如果git bash窗口关闭了那么可以用git reflog查看历史commit-id

    git工作区:例如用git init创建的一个仓库

    git版本库:git工作区有一个隐藏的.git文件,他不算工作区而是版本库,Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。前面修改文本文件or提交都是在缓存区里面进行的。

    git修改:第一次修改>git add  name>git commit -m'注释'. 第一次修改>git add  name>第二次修改>git add name>git commit -m'注释'.

    git删除:git rm aa.txt(删除文档文件aa.txt) git commit -m'remove aa.txt'(删除提交记录)

    git远程仓库:首先需要一个GitHub账号,在git-bash上 git remote add origin ssh(GitHub上复制)。本地仓库和GitHub远程仓库关联git push -u origin master(公钥是必要的:https://gitscm.com/book/zh/v1/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E7%94%9F%E6%88%90-SSH-%E5%85%AC%E9%92%A5有详细介绍)

    git分支管理:git checkout -b dev(创建新分支并进入) git branch dev(创建分支) git checkout master(分支切换)  git branch(查看分支及当前分支“ *”辨识) git merge dev(合并分支) git branch -d dev(删除一条分支)  

    git分支冲突:有些时候分支和master分支合并的时候并不是每个都可以快速合并的例如:在dev分支上修改了aa.txt又在master上修改了aa.txt。并且修改的是不一样的,这个时候需要手动修改成为相同的。当合并出现这个情况时:CONFLICT (content): Merge conflict in aa.txt Automatic merge failed; fix conflicts and then commit the result.便是有冲突。git status可以告诉我们冲突的文件。git log --graph --pretty=oneline --abbrev-commit(可以查看合并情况)。

    前面有说到分支快速合并,但是快速合并会丢失分支信息。在工作中都是在dev分支中做工作然后合并在master分支上,多人合作时快速合并会造成一些麻烦所以要避免这种情况:git merge --no-ff -m"new branch"(这样合并能够在git log graph --pretty=oneline --abbrev-commit(查看分支合并的历史记录))

    bug分支:在正常工作中往往会遇到bug所有需要先放下手头的工作去解决bug,首先需要git stash(把工作场存起来)再创建一个bug分支对bug进行处理,处理完成后再合并分支。这时候假如刚刚的工作还没做完需要继续那么怎么才能继续呢?git stash list(查看保存起来的工作场地),接下来就是恢复工作场地:1、git stash apply(恢复工作场地,但是git stash list记录不会删除需要手动删除:git stash drop)。2、git stash pop(恢复工作场地并删除list里面的)

    强行删除分支:git branch -D <name>

    多人合作:在开发中一个项目往往需要很多人一起合作完成,假如你在做一个项目需要clone一个远程库,然而只能clone master分支,但是工作需要在dev分支上所以你得创建一个dev分支:git branch origin/dev。在工作完成后git push origin dev,假如这个时候你的同事也和你修改了同一个文档并在push就会产生前面说的分支冲突,这时候:git push origin devTogithub.com:michaelliao/learngit.git ! [rejected] dev -> dev (non-fast-forward)error: failedtopushsomerefsto'git@github.com:michaelliao/learngit.git'hint: Updates were rejected because the tipofyourcurrentbranchisbehindhint: its remote counterpart. Integrate the remote changes (e.g.hint:'git pull ...') before pushing again.hint: See the'Note about fast-forwards'in'git push --help'fordetails,根据提示git pull(获取origin/dev的文档),并手动修改分支冲突再push。

    相关文章

      网友评论

          本文标题:Git-study

          本文链接:https://www.haomeiwen.com/subject/lhrikqtx.html