下载源代码
git clone 链接地址
提交时命令行登录
git config --global user.email youremail@test.com
git config --global user.name yourcountname
创建项目
1.复制自己项目的地址,并将项目文件克隆到本地
git clone@https://github.com/xxx....git
2.将下载下来的项目文件夹的所有文件及文件夹,包括.git文件夹在内,全部拷贝到你的托管项目的根目录(或者将你的托管项目拷贝到该目录)
参考 E:\gitcode\my_firstBranch 的结构模式
3.将项目上传到代码仓库
进入本项目目录输入:
git add .
git commit -m "修改说明"
git commit -m "Fix screwup, fixes #12" # 需要关闭issue的用这个
git push -u origin master //提交到github账户,需要用户名密码验证
4. 从代码仓库更新文件: git pull
git push
如果失败的话,说明网络上的版本已经更改过了,那就
git pull
如果失败的话,说明网络的版本和本地的版本在合并时可能产生冲突,那就
git stash(把本地的修改全部缓存起来)
然后再
git pull
然后再
git stash pop(把缓存起来的修改恢复)
然后如果有冲突解决冲突,没有就
git push
git config core.editor vi : 修改提交时修改东西的编辑器
git commit --amend
git push -f origin yourbranch : 强制提交
commit message title, #1
commit message title, #1
5. 管理分支: 分支名用功能名字,不要用其它的!
查看提交和合并状态: git status
创建分支 : git checkout -b [branch name] 为避免分支被覆盖,不要这样干,还是分成两条命令来完成!
效果相当于以下两步操作:
git branch [branch name]
git checkout [branch name]
将新分支推送到github : git push origin [branch name]
git push origin gh-dev
删除本地分支 : git branch -d [branch name]
git branch -d gh-dev
删除github远程分支 : git push origin :[branch name]
分支名前的冒号代表删除。
git push origin :gh-dev
合并分支
--将一个从分支分离出来的的子分支合并,合并完后作为新的主分支
因是单向关系,不存在三方矛盾之类需要解决的问题可以直接合并
git checkout master
git merge hotfix
--主分支有修改的,如果当前工作的子分支需要立刻更新这些修改,需要将主分支合并到子分支来
1. 先将子分支提交干净 : 查看 git status
2. 提交干净后切换到主分支: git checkout master
3. 将主分子更新为最新: git pull
4. 切回子分支: git checkout child_cur
5. 将主分支合并进来: git merge master 并将冲突解决掉
6. 再提交:
git add -A
git commit -m "xxxx"
git push origin child_cur
7. 提交完成后在github网页上发起合并请求,之前已经发起的可以不再发起
--完成所有任务后将所有东西合并会主分支
git checkout master
git merge child_cur
解决合并冲突:
手工修改文件解决
图形界面解决: git mergetool
https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6
分支回滚:
分支未提交的: git checkout -f 如果后面跟具体某个文件,就只回退那个文件,不跟的全部回退
分支已提交但是没有推送到远程的: git reset HEAD~1 或是写要回滚到哪个提交的哈希值
分支已推送的: git revert HEAD revert后面跟的是要回滚掉哪些提交,且包括你写那个提交,这点和reset不一样
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000
6. 删除需要被 .ignore 忽略的文件
git rm -r --cached WebRoot/WEB-INF/classes/**/*
git commit -m "xxx"
git push origin xxxx