欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

在Mac上Git的常用技巧总结

程序员文章站 2022-08-21 14:00:46
在mac上git的常用技巧总结。 1、放弃某次提交,重新提交(abandoned之后的操作) git log git reset 指定的版本号 git add -a git commit...

在mac上git的常用技巧总结。

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、遇到如下问题的解决办法:
在Mac上Git的常用技巧总结

解决办法:

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

新建了一个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