git学习

git init
git add (前 可以使用 git status 查看是缓存区加入哪些文件)
git commit
git status (查看当前是否修改了文件)
git diff
git log
git reset --hard 版本号 或者HEAD^ HEAD^^
git reflog  查看版本日志
git checkout
git checkout -- file命令中的--很重要(还原文件),没有--,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
git rm 从git仓库删除文件
git branch 查看分支  创建分支  
git checkout -b 创建 分支
git merge -m  合并分支  git merge --no-ff -m "merge with no-ff" dev
git log --graph --pretty=oneline --abbrev-commit  //查看历史
Bug分支 :  git stash(储藏)  git stash list git stash pop
git remote 远程分支
git tag 标签 git show

 git checkout -b dev origin/dev  拉去远程其他分支

合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息。

git remote add origin git@github.com:michaelliao/learngit.git 和远程githup 关联

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。


    HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

    穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

    要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

https://github.com/SmileEver/Web.git
git remote add origin git@github.com:michaelliao/learngit.git

###因此,多人协作的工作模式通常是这样:

    首先,可以试图用git push origin branch-name推送自己的修改;

    如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

    如果合并有冲突,则解决冲突,并在本地提交;

    没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。

这就是多人协作的工作模式,一旦熟悉了,就非常简单。
小结

    查看远程库信息,使用git remote -v;

    本地新建的分支如果不推送到远程,对其他人就是不可见的;

    从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

    在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

    建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;

    从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

posted @ 2017-09-24 15:15  寻觅微笑  阅读(59)  评论(0)    收藏  举报