一、git相关
- git init 初始化git仓库
git分支管理
- git branch (branchName) 创建分支
- git branch 列出分支
- git checkout (branchName) 切换分支
- git checkout (newBranchName) 创建并切换新分支
- git branch -d (branchName) 删除分支
查看历史提交
- git log
- git log --online 历史记录简介版本
- git log --author 查找指定用户的提交记录
github git远程仓库
- git fetch 从远程仓库下载新分支与数据
- git merge 从远端仓库提取数据并尝试合并到当前分支
- git push origin master 推送你的新分支与数据到某个远端仓库命令(将本地master推送到远程master分支上)
二、GitHub相关
github是基于git的代码托管平台
- git add (fileName) / * 将fileName或者全部内容添加早暂存区
- git commit -m “代码提交信息” 将改动提交到HEAD
- git push origin master 将HEAD中内容提交道远端仓库
git分支:分支是用来将特性开发绝缘,开发时master是默认分支,在其他分支上进行开发,完成后将其合并到master上
- git checkout -b feature 创建并切换到feature分支,若feature分支已被创建则-b会重置这个分支
- git checkout master 切换回主分支
- git branch -d feature 将新建分支feature删除
更新并合并
- git pull 更新本地仓库至最新的改动
- git merge (branch) 合并branch分支到当前分支
merge可能会出现冲突conficts,这时需要手动修改这些文件来合并冲突,改完后需要执行如下命令- git add (fileName)
- git diff (sourceBranch) (targetBranch) 预览差异
三、记录
然后切完一个,其他方法相同,进到不同的项目目录下,执行git fetch, git branch -r | grep dev,确认分支名称,git checkout -b dev origin/dev 就行了 git branch -vv
git checkout -b 新分支名字(dev-cly-日期) origin/dev
你想合并分支的时候,比如你当前叫dev1,然后你要往dev上合并
你就这么做,先checkout到dev分支,然后更新下代码,就是 git pull,然后git merge dev1
或者你可以这样,切到dev后,找git 历史,找到你想合并过来的提交,依次,git cherry-pick 版本号
新建本地分支并推送至远程
- 先 git fetch
- 从当前分支dev创建并切换至新分支tj :git checkout -b tj
wangchuan@LAPTOP-559PMDAE MINGW64 /d/workspace/hdr (dev)
$ git checkout -b tj
Switched to a new branch 'tj'
- 将新建的分支tj 推送至远程仓库 :git push --set-upstream origin tj
wangchuan@LAPTOP-559PMDAE MINGW64 /d/workspace/hdr (tj)
$ git push --set-upstream origin tj
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: To create a merge request for tj, visit:
remote: https://git.senyint.com/hip/4.0/hdr/-/merge_requests/new?merge_request%5Bsource_branch%5D=tj
remote:
To https://git.senyint.com/hip/4.0/hdr.git
* [new branch] tj -> tj
Branch 'tj' set up to track remote branch 'tj' from 'origin'.
- 查看分支结果 :git branch -a -vv
wangchuan@LAPTOP-559PMDAE MINGW64 /d/workspace/hdr (tj)
$ git branch -a -vv
dev 8d59560 [origin/dev] 更新(HDR):int类型改为对应包装类型
master 40ae63b [origin/master] Merge branch 'dev' into 'master'
* tj 8d59560 [origin/tj] 更新(HDR):int类型改为对应包装类型
remotes/origin/HEAD -> origin/master
remotes/origin/dev 8d59560 更新(HDR):int类型改为对应包装类型
remotes/origin/master 40ae63b Merge branch 'dev' into 'master'
remotes/origin/tj 8d59560 更新(HDR):int类型改为对应包装类型
强制撤回推送到远程的分支
- 首先检查下远程,看看有没有别人提交了心代码,若没有
- 立马打开终端 ,检查git日志 git log --oneline
- 如果是最近一次,那么就直接写 git reset head^
- 如果你本地也不想要这次提交产生的内容,那么就git reset head^ --hard
- 本地操作结束后强制推送远程,git push -f