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,如果有冲突,要先处理冲突。
浙公网安备 33010602011771号