git的运用
以github上的 Markdown项目为例.
新建到本地项目名称改为marker
开始新项目
新建项目,不改变克隆的项目名称
git clone https://github.com/younghz/Markdown.git
新建一个本地分支
git checkout -b new-branch
切换到新建的本地分支
git checkout new-branch
编辑器打开当前分支进行查看和编辑
以atom编辑器为例
atom .
修改了文件,查看修改的文件列表
git status
查看修改内容
git diff <file>
丢弃修改文件
丢弃不要的修改文件:git checkout -- <file>
丢弃所有修改的文件:
git checkout -- .
添加修改的文件准备合并上传
逐一上传修改的文件:git add <file>
上传所有修改的文件:git add .
进行合并
`git commit -m '说明’
注:单引号里的内容自定义,对你要上传的修改合并进行说明
上传到远程仓库
git push origin new-branch:new-branch
origin:远程仓库默认名称
new-branch:当前所处的本地分支
默认本地和远程分支名字相同
git push origin local-branch
查看上传命令帮助
git push origin --help
建立本地分支与远程分支的联系
git push origin local-branch:remote-branch -u
修改配置文件
git config -e
删除本地分支
git branch -d local-branch
新建本地分支
git checkout -b local-branch
新建项目并改成指定的项目名称
git clone https://github.com/younghz/Markdown.git marker
增加一个远程仓库
git remote add marker https://github.com/younghz/Markdown.git
查看远程仓库
git remote
删除远程仓库
git remote remove maker
maker为远程仓库名字
上传合并到新的远程仓库
git push marker local-branch:remote-branch
更换默认的远程仓库源
git config -e
修改fetch,把marker和origin进行名字互换,url不做任何修改.
这是默认的origin就指向了maker这个远程仓库
上传合并:
git push origin local-branch:remote-branch
就把合并上传到了maker这个远程仓库.
如果修改了远程仓库origin的代码,新建项目怎么处理
两个项目之间的信息合并
我们将项目克隆下来后,作为项目源开始使用,但是如果遇到Bug,我们就会疑惑需要修复哪一个,因为如果修复了当前项目的,那么原始项目还是会存在相同的问题,所以这里我们正确的操作应该是将原始项目的Bug修复后,合并到我们的当前项目。
git fetch basic
注:basic=origin
git checkout basic/master
git checkout -b basic-master
git log
查看分支更改情况
git checkout mater
git merge basic-merge
如果有合并冲突
git status
如果文件可以删除,直接git rm 想要删除的文件
如果文件想要保留,直接git add 想要保留的文件
如果文件大家都在修改,打开文件,整理代码
合并上传:
git commit -m '上传内容名字'
git push
系统合作共同维护一个分支
假设分支名为:local-branch1
git pull
git checkout local-branch1
上传合并时的撤销操作
操作了git add这一步
git reset Head <File>
操作了git commit 这一步
git log
查看最近上传的所有合并,找到你想要回到的那个节点.如果我们是想回到git commit这一步之前,找到最新的第二个节点,复制.
git show 目标节点
查看目标节点的更改
git reset 找到的第二个最新的节点
已经git push到了远程仓库等待合并了
1.可以直接在gitlab上关闭合并请求
2.git revert 找到的第二个最新的节点
这时会通知项目里的所有人你已经撤销了这一合并请求
暂存修改
如果你在本地的一个分支做了修改,这时需要git pull 最新的代码再新建一个本地分支做另外一件事.
在当前本地分支
git stash
切换到master
git checkout master
更新代码
git pull
新建一个本地分支,进行另外的操作
git checkout master
git stash这一部分请参考
https://git-scm.com/book/zh/v1/Git-工具-储藏(Stashing)