远端项目保存在我的git hub上面的一个仓库中,对这个仓库执行多人协作、异地协作
克隆代码到本地
- (1)下载远端项目至本地
右键打开Git Bash Here
- (2) 输入命令
git clone https://github.com/xxxx
(HTTPS)
git clone git@github.com......
(SSH)
注:只有在项目开始的时候使用git clone 下载项目
以后每天早上是在项目目录下通过git pull 来拉取最新的项目代码
早上刚来,你要做的事情abcd
先进入项目文件夹,在项目文件夹内右键点击Git Bash Here
- a. 查看远程仓库 $ git remote -v 这样可以看到自己连接的仓库是否正确
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (edit_branch)
$ git remote -v
origin git@github.com:Jan0510/GRBL1.1_learning.git (fetch)
origin git@github.com:Jan0510/GRBL1.1_learning.git (push)
- b. 拉取远程最新的代码 $ git pull (相当于fetch+merge)
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (edit_branch)
$ git pull origin main
From github.com:Jan0510/GRBL1.1_learning
* branch main -> FETCH_HEAD
Updating dbcdb18..dc3657a
Fast-forward
显示Fast-forward
说明成功了,若是失败则提示non-fast-forward
-
c. 创建分支,分支名称自己定义(拉取最新的code后,习惯上要求再创建一个用来编辑的分支)
$ git checkout -b edit_branch
-
d. 在刚创建分支edit_branch下开始做修改
下班前该提交你的项目了,需要做的事情efghijk
- e. 确认当前分支是edit_branch,然后add+commit
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (edit_branch)
$ git branch
* edit_branch
main
$ git add .
$ git commit . -m "edit_done"
- f. 这时候切换到主分支 (切换分支之前一定要保证分支edit_branch下已经
完全commit, 否则无法切换,即使用git status查看一下,没有红的绿的就表示提交完成)
$ git checkout master
(切换至master分支)
- g.再次拉取远程最新代码(此时路径应在master下)
这里解释一下为什么要切换到主分支并且重新拉取代码
因为咱们多人协作,在你编写你的代码期间,别人可能已经上传、更新版了,
这时候项目的源代码或许已经改变,因此需要重新拉取。
重新拉取的代码会重新下载到你的项目目录中,
之前edit_branch分支改变的内容会保存在你电脑的缓存区。
- h. 在你的主分支(master)下进行分支合并
$ git merge edit_branch
- i: 那么刚才只是在本地合并分支,我们需要将本地合并后的主干master上传到远端的master
$ git push -u origin master
-
j: 这时候在远端查看一下,你的代码是否修改完成
-
k: 确认修改完成了 这时候删除你自己的分支 edit_branch
$ git branch -d edit_branch
强制删除命令($ git branch -D edit_branch
)
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (edit_branch)
$ git branch
* edit_branch
main
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (edit_branch)
$ git add .
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (edit_branch)
$ git commit . -m "edit_1"
On branch edit_branch
nothing to commit, working tree clean
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (edit_branch)
$ git checkout main
Switched to branch 'main'
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (main)
$ git merge edit_branch
Updating 555f1e3..dc3657a
Fast-forward
README.md | 1 +
grbl-1.1h.20190825/grbl/config.h | 8 +-
grbl-1.1h.20190825/grbl/coolant_control.c | 1 +
grbl-1.1h.20190825/grbl/gcode.c | 31 +-
grbl-1.1h.20190825/grbl/gcode.h | 10 +-
grbl-1.1h.20190825/grbl/motion_control.c | 45 +--
grbl-1.1h.20190825/grbl/nuts_bolts.c | 7 +-
grbl-1.1h.20190825/grbl/nuts_bolts.h | 2 +-
grbl-1.1h.20190825/grbl/planner.c | 96 +++--
grbl-1.1h.20190825/grbl/planner.h | 14 +-
grbl-1.1h.20190825/grbl/protocol.c | 67 ++--
grbl-1.1h.20190825/grbl/settings.h | 2 +-
grbl-1.1h.20190825/grbl/spindle_control.c | 9 +-
grbl-1.1h.20190825/grbl/spindle_control.h | 5 +-
grbl-1.1h.20190825/grbl/stepper.c | 572 ++++++++++++++++++++----------
15 files changed, 569 insertions(+), 301 deletions(-)
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (main)
$ git push -u origin main
Everything up-to-date
Branch 'main' set up to track remote branch 'main' from 'origin'.
Jianwei@DESKTOP-QSBBGQV MINGW64 ~/Desktop/grbl-1.1h.20190825 (main)
$ git branch -d edit_branch
Deleted branch edit_branch (was dc3657a).