文为自己填继续学习git心得, 可能有我不对的地方望大神指出! 之前呢,一直用gui工具进行操作,不知其然更不知其所以然 只知道拉取 推送 下载,结果不能深入的了解,也不知道分支是可以干嘛的,现在明白了,有了分支功能,你可以在程序的1.0版本完成了,创建一个2.0分支 异步一步迭代,如果 要还原 切换到1.0 也是得心应手。

从0开始从无到有

push推送 从本地推送到服务器叫推 ,是给别人 也就是不是本地 ,pull 翻译 叫拉 是拉向自己 从远程。

那么 安卓手机adb也有这个命令 谁是主呢?是电脑还是 手机,当然是手机了,电脑可以是其他任何设备,被操作的设备 也就是里面带有命令行的设备就是自己

把手机的东西弄到电脑叫 adb push /sdcard/a.txt d:/ 记住了没有?

从服务器创建了一个仓库,那么默认地址应该叫类似
https://git.coding.net/qssq/test.git

初始化目录进行学习

教程开始

我想在e盘根目录下的gitdemo文件夹测试 git用法

首先打开gitdemo文件夹

如果正常安装了git的话 右键就可以用了

没有右键也是可以自己配置右键菜单的

百度一下情迁教你右键菜单编程在任意文件夹学习这些

It技术调试git,java,.net 等各种。哈哈其实扯远了。就是右键管理员从此处运行

这样cd命令自动切换到了当前目录

有了它可以快速敲git 命令 java命令,c# 命令 情迁命令

情迁QQ机器人的命令其实也是可以的,可惜webqq难倒腾了,一切都over了。

  1. 服务器创建了一个test的git仓库,打开gitdemo文件夹 右键git bash 命令:

    1
    git clone https://git.coding.net/qssq/test.git test
  2. 如果配置了cmd的话cmd也可以的,没有配置的win+r切换gitdemo目录即可。

  3. 这样就会在gitdemo下面创建一个test文件夹,然后打开文件夹. 或者 git bath切换到此目录
    最后的啰嗦

敲入命令 在test文件夹输入:
啰嗦一下,没有说错的话,远程默认有一个分支叫master,本地也是 所以不要问我为什么 是无法删除的

提示权限错误 deleting the current branch is denied

例子: 默认远程主机名叫origin,所以是origin,没有为什么..

首先开始玩创建本地分支 然后创建一个远程分支 然后 演示删除一个创建的远程分支 ,大致就能完全了解清楚了。

语法:$ git push <远程主机名> <本地分支名>:<远程分支名>
也就是按英文意思叫 推送到服务器 把本地 推送远程 。 所以本地分支在前面 和pll相反。

推送演示
  • 最常见的写法

    推送当前本地分支master到远程分支master,如果远程分支maseter不存在则创建创建名肯定是参考本地分支名了[此处省略参数 为远程分致命]

git push origin master

应该和 git push https://******git master类似

  • 一个错误的推送命令

    git push origin;#这语法是错误的,我还以为一直可以省略,甚至把origin理解 为是一个分支
    

    提示: 可以从这里得到相关信息,这是项目目录的隐藏.git文件夹的config文件,origin对应的远程路径是http**

       [core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = false
    [remote "origin"]
        url = https://****.net/qssq/qssq.git
        fetch = +refs/heads/*:refs/remotes/origin/*
        pushurl = https://*****/qssq/qssq.git
    [branch "coding-pages"]
        remote = origin
        merge = refs/heads/coding-pages

1
2
3
4
5
6
7
* **推送本地分支test1到远程分支test2**
参数完全 把本地分支test1推送到远程分支test2不存在则创建
git push origin test1:test2
1
2
3
4
5
* 删除远程分支test2
此处省略了本地分支名参数 所以叫删除 和git push origin --delete test2类似 注意看清楚哦,有一个冒号 注意默认只有一个仓库是无法删除的,会提示权限问题。
```bash
git push origin :test2;#[git push origin --delete test2 等同]
拉取演示

语法:

1
git pull <远程主机名> <远程分支名>:<本地分支名>

从远程服务器别名叫origin 的 拉取远程分支master到本地的默认分支,命令如下:

1
git pull origin master

从远程服务器 别名(可以参考全局git配置文件) 拉取test1分支到本地的test1分支

1
git pull origin test1:test1

不想写了, 发现有些玩意不是我想的那样,本地删除了如果本地提交了为毛从服务器拉取都拉取不到,第二,为毛本地删除了 从服务器拉取没拉取到 然后切换一下分支再切换回来 文件才回来??

如果本地删除了一个文件并提交了commit 从服务器拉取的 那么 也是无法还原的, Already up-to-date.
git push origin

切换分支 不存在则报错

1
git checkou test2

创建分支test2并切换到test2分支 如果已存在分支将无法切换到此分支

1
git checkout -b test2

创建分支 如果存在则会提示已存在

1
git branch test

查看所有本地分支 以及当前分支当前分支颜色有点不相同

1
git branch

查看所有分支

1
git branch -a

查看状态 是否有文件需要提交什么的信息 这里指的是commit 是否需要commit

git status

获取分支

git fetch origin

查看提交的备注信息

git log

查看指定分支log

git log source

加入到版本控制

git add 文件名
git add 文件名1 文件名2 文件名3
git add -A  //加入此目录下所有文件到版本控制
//支持相对路径哦

提交文件修改

git commit -m "备注信息"

吐槽
可以新建一个shell脚本保存起来直接放到根目录直接点击就可以提交了。

TortoiseGit的弊端

大量文件无法右键菜单添加会卡死,然而你只需要里面的几个文件,那么这玩意真心浪费时间,没有命令行或者shell的快

下面是我的shell脚本 window

set /p message="请输入提交说明:"
git add -A && git commit -m  "%message%" 
git push --progress origin source
pause