最近项目中用到了 git branch
和 git submodule
,查阅了一些文章,总算有点头绪了,连同一些常用的 git 命令记录在此,以便查阅。
git 常用命令
- 远程仓库相关命令
检出仓库:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:$ git remote -v
添加远程仓库:$ git remote add [name] [url]
删除远程仓库:$ git remote rm [name]
修改远程仓库:$ git remote set-url --push [name] [newUrl]
拉取远程仓库:$ git pull [remoteName] [localBranchName]
推送远程仓库:$ git push [remoteName] [localBranchName]
|
|
查看本地修改与服务器的差异:git status
将这些差异文件添加,这样就可以提交了 git add .
提交更改到服务器:git commit –m “这里是注释”
如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:
- 使用 git rebase 避免无谓的 merge
用 git rebase
代替 git merge
或
在rebase的过程中,也许会出现冲突。在这种情况,Git会停止rebase并会让你去解决冲突;在解决完冲突后,用git add
命令去更新这些内容的索引, 然后,你无需执行 git commit,只要执行:
这样 git 会继续rebase。
在任何时候,你可以用--abort
参数来终止rebase的行动,并且”mywork”分支会回到rebase开始前的状态。
git submodule 子模块
Git submodule 可以轻易地将别人的 git 项目挂入你目前 git 项目的任何位置
- git submodule add
使用 git submodule add [仓库位置] [欲放置的位置]
增加一个新的子模块:
需要注意 [欲放置的位置] 不能以 / 结尾(会造成修改不生效),也不能已经是现有的路径(不能顺利 Clone)。
- git submodule status
查看分支状态
- git submodule init
submodule 初始化
- git submodule update
更新子模块的内容
git branch 分支操作
新建本地分支
123git branch testing #创建testing分支git checkout testing #切换至testing分支git checkout -b iss53 #创建并切换至iss53分支。创建跟踪分支
方法一:
|
|
方法二:(适用1.6.2以上版本Git)
|
|
- 查看分支
|
|
- 远程分支跟本地分支的关系
|
|
- 更新远程跟踪分支到本地分支
|
|
- 删除分支:1$ git branch -d [name]
-d 选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用 -D 选项
- 推送本地分支
方法一:
语法:git push (远程仓库名) (本地分支名)
方法二:(可自定义远程分支名)
语法:git push (远程仓库名) (本地分支名):(远程分支名)
- 合并本地分支
|
|
- 解决合并冲突
|
|
- 合并远程分支
|
|
- 查看已和当前分支合并的分支
可用git branch -d [name]
删掉未标星号的分支,因为已经合并了。
- 查看未和当前分支合并的分支
强制删除未合并的分支git branch -D [name]
- 删除远程分支
|
|
- 衍合所在分支
|
|