拉取主干
git clone git@dev.yutong.com:v-3.0-group/websolution.git
切换目录
查看远程分支
git branch -a
查看本地分支
git branch
查看本地和远程的所有分支
git branch -al
拉取远程分支
git checkout -b develop origin/develop
切换分支
git checkout master
删除本地分支
git branch -d <BranchName>
创建本地分支
git checkout -b develop
push远程分支
git push origin develop:develop
关联远程分支
git pull origin develop
git branch --set-upstream-to=origin/develop develop
删除远程分支
git push origin :develop push一个空分支
git push origin --delete develop 删除分支
提交代码到远程分支
切换到工程代码目录
git add .
git commit -m "提交说明"
如若再想修改
git add
git commit --amend 这样就还是一条git log信息
git push
git pull = git fetch + git merge
git status
git diff
查看远程库信息,使用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,如果有冲突,要先处理冲突。
命令git tag <tagname>用于新建一个标签,默认为HEAD,也可以指定一个提交id;
命令git tag -a <tagname> -m "blablabla..."可以指定标签信息;
命令git tag可以查看所有标签。
命令git push origin <tagname>可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d <tagname>可以删除一个本地标签;
命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
git checkout -b [branchName] [tagName] 创建tag的分支
git pull不能默认将所有的tags拉下来。如果你和我一样,遇到了不能通过git tag显示所有tags的问题。
先使用
git fetch --tags
然后再
git tag
# 重置当前项目的远程路径为target目标
$ git remote set-url origin git@git.xxx.com:xxx/example.git
# 查看当前origin路径地址
$ git remote -v
# 暂存未开发完成的代码
git stash
#查看暂存未开发完成的代码
git stash list
#恢复暂存未开发完成的代码
git stash apply恢复 但是恢复后,藏匿内容并不删除,需要你用git stash drop来删除
git stash pop,恢复的同时把藏匿内容也删了:
# 第一个:如果功能开发完成了,可以合并主分支
git checkout master # 切换到主分支
git merge dev # 把dev分支的更改和master合并
git push # 提交主分支代码远程
git checkout dev # 切换到dev远程分支
git push # 提交dev分支到远程
# 第二个:如果功能没有完成,可以直接推送
git push # 提交到dev远程分支
合并某次提交到某个分支
git cherry-pick commitid
--把ee3c72提交合并到master:
git checkout master
git cherry-pick ee3c72
git push
git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git reset --hard HASH #返回到某个节点,不保留修改 三区(工作区 git add 暂存区 git commit 本地库)同步。
git reset --soft HASH #返回到某个节点。保留修改 前两个区不同步,只有本地库跳到该版本
git reset --mixed HASH #暂存区同步 工作区不动
git回滚到任意版本
先显示提交的log
git log -3
回滚到指定的版本
git reset --hard e377f60e28c8b84158
强制提交
git push -f origin master
log 简洁打印方式
git log --oneline
或
git reflog
问题解决:Unlink of file '.git/objects/pack/pack-***.pack'
git gc --auto
git repack -d -l
使本地和git服务器同步
git pull --rebase origin master
#提交时转换为LF,检出时转换为CRLF
$ git config --global core.autocrlf true
#提交时转换为LF,检出时不转换
$ git config --global core.autocrlf input
#提交检出均不转换
$ git config --global core.autocrlf false
#拒绝提交包含混合换行符的文件
git config --global core.safecrlf true
#允许提交包含混合换行符的文件
git config --global core.safecrlf false
#提交包含混合换行符的文件时给出警告
git config --global core.safecrlf warn