Git 使用记录

Git 实用操作

2017-09-18  本文已影响16人  OoYoO

删除文件夹下的所有 .git 文件
$ find . -name ".git" | xargs rm -Rf

修改.gitignore后生效
$ git rm -r --cached . #清除缓存;
$ git add . #重新trace file
$ git commit -m "update .gitignore" #提交和注释
$ git push origin master #可选,如果需要同步到remote上的话
注意 git rm -r --cached 要忽略的文件

pull会使用git merge导致冲突,需要将冲突的文件resolve掉
$ git add - u
$ git commit
然后,git pull.

git pull的时候遇到这样的问题:
The following untracked working tree files would be overwritten by merge balabala...
解决方法:
$ git clean -d -fx
备注:会删除掉没有add到仓库的文件,操作记得慎重,以免改动文件的丢失。本质上就是操作仓库中没有被追踪的本地文件
以上操作,具体解释如下
$ git clean -f -n # 1
$ git clean -f # 2
$ git clean -fd # 3
$ git clean -fX # 4
$ git clean -fx # 5
(1): 选项-n将显示执行(2)时将会移除哪些文件。
(2): 该命令会移除所有命令(1)中显示的文件。
(3): 如果你还想移除文件件,请使用选项-d。
(4): 如果你只想移除已被忽略的文件,请使用选项-X。
(5): 如果你想移除已被忽略和未被忽略的文件,请使用选项-x。

git add . 撤回
$ git reset HEAD . #撤销所有的已经add的文件
$ git reset filename #撤销某个文件或文件夹

git reset 和 git checkout 的区别
https://segmentfault.com/a/1190000006185954

误删除了文件找回,如eventbus.jar
$ git reset HEAD libs/eventbus.jar
$ git checkout -- libs/eventbus.jar

Tag的使用

1、使用git checkout tag即可切换到指定tag,例如:git checkout v0.1.0
2、git checkout -b branch tag创建一个基于指定tag的分支,例如:git checkout -b tset v0.1.0  这个时候就会在分支上进行开发,之后可以切换到主线合并
3、在本地仓库给工程打标签 git tag [tagname]
4、同步标签到远程仓库 
    a)、push 单个tag,git push origin [tagname],比如:git push origin v1.0
    b)、push 所有tag,git push [origin] --tags, 比如:git push --tags 或者 git push origin --tags
5、删除tag
    a)、本地: git tag -d v1.1
    b)、远程: git push origin --delete tag v1.1 或者 git push origin :v1.1

Branch 的使用
首先, clone 一个远端仓库,到其目录下:
$ git clone git://example.com/myproject
$ cd myproject
然后,看看你本地有什么分支:
$ git branch
但是有些其他分支你在的仓库里面是隐藏的,可以加上-a选项来查看:
$ git branch -a
快速切换到上面的分支:
$ git checkout origin/experimental
但是,如果你想在那个分支工作的话,你就需要创建一个本地分支:
$ git checkout -b experimental origin/experimental
现在,再查看你的本地分支
$ git branch
master
- experimental
还可以用git remote命令跟踪多个远程分支
重新关联
$ git push --set-upstream origin branchname
重新跟踪远程文件直接修改
$ git remote origin set-url URL
先删除再添加
删除 $ git remote rm origin
添加 $ git push -u origin yourbranch
关联 $ git pull \<remote> \<branch>

创建本地分支(对应远程分支)
$ git checkout --track或 git checkout -b
$ git checkout --track origin/develop
$ git checkout -b develop origin/develop

上传本地分支到远程分支,并建立跟踪(To push the current branch and set the remote as upstream)
git push --set-upstream origin WeiLive

查看所有分支(包括本地和远程分支)

$ git branch -a
* br-2.1.2.2
master
remotes/origin/HEAD -&gt; origin/master
remotes/origin/br-2.1.2.1
remotes/origin/br-2.1.2.2
remotes/origin/br-2.1.3
remotes/origin/master

2 查看本地分支**

$ git branch
* br-2.1.2.2
master

3 查看远程分支

$ git branch -r
origin/HEAD -> origin/master
origin/apk
origin/dev_strongtv_konka_report_recognize
origin/develop
origin/develop_chipstv
origin/develop_strongtv
origin/develop_strongtv_ch
origin/master
origin/release

4 创建本地分支

$ git branch test
$ git branch
* br-2.1.2.2
master
test

5 切换分支到test

$ git branch
* br-2.1.2.2
master
test
$ git checkout test
Switched to branch 'test'
$ git branch
br-2.1.2.2
master
* test

6 删除本地分支

git branch -d xxxxx
$ git checkout br-2.1.2.2
Switched to branch 'br-2.1.2.2'
$ git br
* br-2.1.2.2
master
test
$ git br -d test
Deleted branch test (was 17d28d9)
$ git br
* br-2.1.2.2
master
前面带*号的代表你当前工作目录所处的分支

本文讲的是把Git在最新2.9.2,合并pull两个不同的项目,出现的问题如何去解决fatal: refusing to merge unrelated histories

我在Github新建一个仓库,写了License,然后把本地一个写了很久仓库上传。

先pull,因为两个仓库不同,发现refusing to merge unrelated histories,无法pull

因为他们是两个不同的项目,要把两个不同的项目合并,git需要添加一句代码,在git pull,这句代码是在git 2.9.2版本发生的,最新的版本需要添加--allow-unrelated-histories

假如我们的源是origin,分支是master,那么我们 需要这样写git pull origin master ----allow-unrelated-histories需要知道,我们的源可以是本地的路径

上一篇 下一篇

猜你喜欢

热点阅读