Git 常用的不常用笔记 - 分享自@开发者头条
- 1. Git 常用的不常用笔记 - 分享自@开发者头条
- 2. 1. Git 从服务器拉取新项目的步骤
- 3. 2. Git submodule
- 4. 3. Git将已经加入版本控制的文件(夹)删除
- 5. 4. Git 将一个现有项目加入版本控制
- 6. 先添加一个远程仓库,[origin]是别名,后面是地址
- 7. 然后关联[origin]的master分支(默认有这个分支)
- 8. 5. Git拉取远程分支并关联本地
- 9. submodule lready exists in the index
- 10. Git 新建一个Android Gradle项目并且添加了子模块,然后要将子模块单独设置为一个git submodule
Git 常用的不常用笔记 - 分享自@开发者头条
git 命令行 开发者头条
参考:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
1. Git 从服务器拉取新项目的步骤
//1. git clone [url] #下面的示例中地址随便写的
git clone https://gitub.com/hello/world.git
//2. 切换到其他分支,可以将分支切换到某个远程分支并创建对应的本地分支
//git checkout -b [newBranch] –track [remote]/[branch],切换到dev分支,本地还没有创建dev的时候
git checkout -b dev –track origin/dev
//如果有子分支的话
//3. 子分支的初始化:遍历 –递归
git submodule foreach –recursive git submodule init
//4. 子分支切换到master(默认在某一个commit上面),不确认的话可以先git submodule一下
git submodule foreach –recursive git checkout master
2. Git submodule
1. 添加
git submodule add [仓库地址] [路径]
其中,仓库地址是指子模块仓库地址,路径指将子模块放置在当前工程下的路径。
注意:路径不能以/结尾(会造成修改不生效)、不能是现有工程已有的目录(不能顺利clone)
命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模块的信息。添加完成以后,再将子模块所在的文件夹添加到工程中即可。
2. 删除
submodule的删除稍微麻烦点:
首先,要在“.gitmodules”文件中删除相应配置信息。
然后,执行
git rm –cached
将子模块所在的文件从git中删除。
3. 下载的工程带有submodule
1). 下载所有子module
当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令:
git submodule update –init –recursive
即可将子模块内容下载下来后工程才不会缺少相应的文件。
2). 通过下面的命令
git submodule
查看一下所有的子Module.可以看看是不是都在master分支或者你期望的分支上,如果不是都切回到主分支或者你需要的分支先.
3). Git submodule 的其他其命令
#可以把这些缩写配置到git配置文件~/.gitconfig中
[alias]
st = status -s
co = checkout
sbp = submodule foreach git pull
sbc = submodule foreach git co master
sbpr = submodule foreach –recursive git pull
sbcr = submodule foreach –recursive git checkout master
sbi = submodule foreach –recursive git submodule init
sbu = submodule foreach –recursive git submodule update
3. Git将已经加入版本控制的文件(夹)删除
参考:http://blog.csdn.net/zfphp/article/details/38012551
参考:http://droidyue.com/blog/2014/07/25/untrack-versioned-file-in-git/(这个方法还没试过)
1) 查看取消某个文件夹可能影响到的文件列表预览
git rm -r -n –cached [Directory or File]* \-n这个参数表示预览
2) 将文件(夹)移除版本控制
git rm -r –cached [Directory or File]* \没有-n了
3) 提交
git commit -m “移除[Directory or File]的版本控制”
后面这两步就是最普通的提交和推送到远程了
4) 提交到远程服务器
git push origin master
4. Git 将一个现有项目加入版本控制
0) 将文件夹移除版本控制
如果该项目(文件夹)已经是某个大的Git项目中的一个子项目,先把对应文件夹在父项目所在Git中的版本控制移除
1) 确保该项目下有.gitignore文件并正确设置
2) 初始化
git init
3) add & commit
git add . # 添加所有文件
git commit -m “初次提交”
4) 关联远程仓库(远程仓库已经建立)
先添加一个远程仓库,[origin]是别名,后面是地址
git remote add [orign] [https://xxx.git]
然后关联[origin]的master分支(默认有这个分支)
git branch –set-upstream master orign/master
其实我们也可以直接修改.git/config的配置来进行添加和关联远程仓库
5. Git拉取远程分支并关联本地
先不要打开 Android Studio, 因为很多不应该Git版本控制as配置文件加入了很容易修改,先checkout 到master(如果当前不在某个分支的haunted)
git checkout -b local-branchname origin/remote_branchname
submodule lready exists in the index
我现在要把当前项目的其中一个文件夹改成submodule
Git 新建一个Android Gradle项目并且添加了子模块,然后要将子模块单独设置为一个git submodule
- 现在服务器新建对应的空Git项目,主工程和子模块都新建一个,注意不要初始化
- 然后进入子模块,将子模块和远程Git绑定(init,add,commit,reomte.add,push等),注意不要把无关的文件添加到版本控制中去
- 然后建议将子模块先移出去(不要打开AndroidStudio)
- 然后开始将父模块和远程绑定(同2)
- 然后对父模块执行submodule.add等操作即可将子模块添加进来,注意:执行以下submodule.checkout master,一开始submodule不是在主分支上的(只是指向了一个commit_id.
- 然后就OK了.
** 获取远程代码并覆盖本地代码**
- git fetch –all
- git reset –hard origin/master
查看远程仓库日志
//查看三条提交日志记录
git log origin/master -n 3
//将未提交的代码暂存,切换分支后取出
使用git stash 将A分支暂存起来,然后在某一个分支(如master分支)新建一个分支B,然后在B分支上使用git stash pop 将修改弹出到B分支上,然后这些修改就在B分支上了。然后我们又可以愉快的玩耍了~

