1、放弃某次提交,重新提交(Abandoned之后的操作)

git log
git reset 指定的版本号
git add -A
git commit -m"修改描述"

2、提交本地修改的部分文件到远程库

git add 文件本地完整路径
git commit -m"修改描述”
git stash (把不愿意提交的文件存入本地备份中)
git review 分支名称
git stash pop(把你之前不愿意提交的文件pop出来)

3、解决文件内容冲突,提交代码到远程库
1、合并远程库与本地的代码

git status
git stash
git pull
git stash pop

2、若有冲突,解决完冲突后,执行

git add -A
git commit -m"修改描述"
git review 分支名称

4、遇到如下问题的解决办法:
这里写图片描述

解决办法:

git reset --hard HEAD^ // 回到上一个版本
git clean -f -d // clear untracked working tree file
git pull // 重新从远程仓库上获取更新内容

注:在执行git clean -f -d 命令前,未跟踪的文件要记的做备份。

将本地的代码上传到github上:

git add .
git commit -m"init submit code"
git remote add origin https://github.com/hpdx/MLog.git

git pull origin master
git push origin master
git push --set-upstream origin master

在执行git pull origin master 时若报如下错误:
fatal: refusing to merge unrelated histories
请改用如下命令:
git pull origin master --allow-unrelated-histories

新建了一个Module(lib),忘记添加.gitignore文件,结果同事pull的代码,编译后发现一大堆不想看到的build文件,
若想以后不再看见它,这时需要每个更新了代码的人都做的处理如下:

git rm -r --cached wheelview/build
git add .
git commit -m"rm build files"
git push

其中wheelview为Module的名称

git stash删除后,有办法恢复吗
首先输入
git fsck --lost-found
会看到 一条一条的记录 类似 
   dangling commit 7010e0447be96627fde29961d420d887533d7796

复制dangling commit 的id(其他的dangling blob不用理会)

然后输入
git show 7010e0447be96627fde29961d420d887533d7796

    查看具体内容, 找到你想要的记录
    记录中会描述日期和摘要,
    日期是你git stash 的日期, 
    摘要会记录你是在哪一条commit 上进行git stash操作的, 
    类似(WIP on integration-xf: 2e205ac Merge branch 'release' into develop)
    貌似只能一条记录一条记录的查看

找到你想要的记录后输入
git merge 7010e0447be96627fde29961d420d887533d7796

这样就还原了你git stash drop, git stash clear  的内容

push代码的时候,报出了如下错误:

android-lstekiMacBook-Pro:HungerDating android_ls$ git push
error: src refspec dev_1.3 matches more than one.
error: failed to push some refs to 'git@192.168.90.252:Android/HungerDating.git'

解决办法:

android-lstekiMacBook-Pro:HungerDating android_ls$ git tag
dev_1.0
dev_1.2
dev_1.3
android-lstekiMacBook-Pro:HungerDating android_ls$ git tag -d dev_1.3
Deleted tag 'dev_1.3' (was b70c097)
android-lstekiMacBook-Pro:HungerDating android_ls$ git push
Counting objects: 20, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (16/16), done.
Writing objects: 100% (20/20), 4.49 KiB | 0 bytes/s, done.
Total 20 (delta 13), reused 1 (delta 0)
To git@192.168.90.252:Android/HungerDating.git
   0a5eb40..03f4841  dev_1.3 -> dev_1.3

checkout远程的dev分支,在本地起名为dev分支,并切换到本地的dev分支

git checkout -b develop_version96 origin/develop_version96

将本地分支推送到远程仓库

git push origin dev_1.9

合并分支到master上,先切换分支到master上,在merge目标分支到master上

git checkout master
git merge dev_1.8
git commit -m "commit dev_1.8"
git push

创建tag并提交到远程

 git tag -a tag_1.11 -m "commit v1.11"
 git push --tags
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐