账号管理
git config --global user.email
代码开发常用
git add
git add . (注意标点符号)
git commit -m "备注日志"
git show logid (HashId)
git pull origin 分支名称
git fetch origin 分支名称
git push origin 分支名称
git clone 仓库地址(http://...)
git stash
git stash pop
git stash save "备注日志提示"
git stash list
git stash apply stash@{0}
git stash drop stash@{0}//单行删除
git stash clear
git reset <file>
git rm <file>
注:持续enter 换行显示,b上一页翻页显示,空格下一页翻页显示
仓库查看提交记录
git log 或 git log filepath 或 git log --pretty=oneline
git show logid 或 reflog
分支管理常用
git branch -a
git branch 本地分支名称
git branch -D 本地分支名称
git reflog (本地日志)
git checkout 分支名称
git merge 分支名称
git log (远程日志)
git status
git reset --hard reflogID
git remote update origin --prune
各级保存区别
1.add对应暂存区> (2.stash对应堆栈) > 3.commit对应本地仓库>4.push对应远程仓库
示例.切出分支 , 并保存修改内容
git stash save "1月份开发内容"
git checkout 分支名称
示例.切回分支 , 并推出、删除保存修改内容
git status (注意有提交未推送的状态,处理后做)
git checkout 分支名称
git stash list
git stash apply stash@{0}
git stash drop stash@{0}
示例.分支合并
git status (注意有提交未推送的状态,处理后做)
git checkout 根分支(父分支)
git pull origin 根分支 或者 git fetch origin 根分支(注意解决冲突,处理后做)
git merge 被合并的分支(父分支分出来的子分支,该操作会将被合并的分支合并到父分支)
git push origin 根分支
另外: git cherry-pick 被合并分支的logid ( 用于不同分支提交记录迁移合并,一般是提交记录到错误分支 )
git add/commit (如果有冲突, 手动解决冲突后再次提交)
git cherry-pick --abort (放弃合并)
git cherry-pick --continue (继续合并)
示例.版本回退
git status
git reflog
git reset --hard reflogID(回滚并删除改动代码) 或者git reset --mixed reflogID (回滚不删除已改动的代码)
git push origin HEAD --force 分支名称 (--force ,因为reset是重置,提交记录会有一定风险,因此要强制才能成功,确认后慎用!!)
示例.新建本地分支远程同步
git checkout -b 本地分支名称(从当前创建本地分支)
git push origin 本地分支名称
git branch --set-upstream-to=origin/dev(远程关联本地)
git pull origin 远程分支
示例.克隆超时导致失败
git config http.postBuffer 524288000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
notice1:git clone --depth=1 http://gitlab.xxxxxxx..git
notice2:git remote set-branches origin otherBranchName
notice3:git fetch --depth 1 origin otherBranchName
注意:使用这种方法,notice1执行后默认下载master分支,其它分支没有。需要执行notice2,3,单独下载其它分支。这种解决方案,解决传输量太大引起的超时,通过配置大小,超时时间解决。
{{//上面现在每次都得单独拉取过于麻烦,从其它文献找来下面的这段文献,还没试过
修改.git/config文件中的
fetch = +refs/heads/master:refs/remotes/origin/master
为
fetch = +refs/heads/*:refs/remotes/origin/*
然后执行
git fetch --all
}}
日常实际问题:
git remote update origin --prune 会把分支的信息同步到本地,还会把线上版本也同步过来,当前分支相当pull拉取操作
git branch --set-upstream-to=origin/[远程仓库名称] 使用git pull操作时可能出现关联失败提示,可以关联远程仓库到本地当前分支,而使用git pull origin [分支名称 ] 这种指定分支的操作,就不会出现远程与本地分支不匹配的情况。