git工具的使用

Git学习网站:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

更新代码:git pull

上传代码:git push

上传分支:git push origin master

1.自报家门
    git config --global user.name "mikepxq"
    git config --global user.email "1024694765@qq.com"

2.建库
    mkdir ..创建文件
    cd ..  进入
    pwd//显示当前目录
    git init
    .git
    ls -ah 查看所有列表
3.git add 
    3.1.git add .   不包括被删除的文件,其他所有添加到暂存区
    3.2.git add -u  只处理被add的文件,不会提交新文件。
    3.2.git add -A 上面的集合。

4.git commit -m "sqdao3-wrap init"
    提交到本地仓库
    4.1. git commit --amend 撤销上一次提交  并讲暂存区文件重新提交
5.git status
    查看项目当前状况
6.git diff
    查看修改 的内容
    (difference)
7.git log
    查看所有版本
    git log --pretty=oneline
    简介版
8.git reset HEAD  -- <file>  拉取最近一次提交到版本库的文件到暂存区  该操作不影响工作区
    HEAD 表示当前指针
    HEAD^上一个
    HEAD^^上2个
    HEAD~100 上一百个
    
    git reset --hard //重置暂存区与工作区,与上一次commit保持一致
     1.之前删除的或者说 移动的文件 回复了 但是复制目录的地方 文件没有卸载,
    也就是之前的回复了,现在的没删除。

    git reset --hard 3628164
    也可以用 commit id  3628164...
9.git reflog
    用来记录你的每一次命令:
 10 stage 暂存区
     git add命令实际上就是把要提交的所有修改放到暂存区(Stage),
     然后,执行git commit就可以一次性把暂存区的所有修改提交到分支。
 11.git checkout -- <file>     拉取暂存区文件 并将其替换成工作区文件
12. cat  readme.txt
    查看文件内容
    Changes not staged for commit:
13.rm <file> 删除文件
    1.删除后 git checkout <file> 取消操作(保存删除这个动作)
    2.就是说 如果删除后 有修改其他内容 然后 为了找回删除的文件 这些(最后一次提交后)修改也会没了
14 创建SSH key 密匙
    ssh-keygen -t rsa -C ".....@qq.com"
15.推送本地仓库
    https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000
    1.git remote add origin git@github.com:mikepxq/aipxq-blog-dev.git
    git remote add origin git@github.com:mikepxq/templateBasis.git
    git@github.com:mikepxq/aipxq-blog.git

 git@github.com:mikepxq/liuhe.git
    remote(遥远的)
    远程库的名字就是origin(起源的)
    1.git push -u origin master
    2.git push origin master 第二次不用 -u
    3.git push origin master -f 强推
    第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,
    还会把本地的master分支和远程的master分支关联起来
    这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,
    需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。
16.克隆
    git clone git@github.com:mikepxq/test.git
    git clone git@github.com:mikepxq/templateBasis.git
17创建分支
    git checkout -b dev  创建和切换
    =
    git branch dev
    git checkout dev
18.查看当前分支
    git branch 命令会列出所有分支,当前分支前面会标一个*号。
19 切换分支
    git checkout <分支>
    git checkout master
    这个也在 仓库里 为什么这个分支的会 主分支没变 git 只能检测 二进制文件的改变
    所以js文件 可能(不知道js是不是二进制文件)检测不到
20.合并分支
    git merge <分支>
    git merge dev
    1.'快进模式'Fast-forward 也就是直接把master指向dev的当前提交,所以合并速度非常快。
21.删除分支
    git branch -d <分支>
    git branch -d dev
22.
    Your branch is ahead of 'origin/master' by 1 commit.
    比远程分支超前一个分支

23.查看合并情况
    git log --graph --pretty=oneline --abbrev-commit
    用git log --graph命令可以看到分支合并图。
24.合并冲突
    合并冲突后 git会在冲突文件提示
    <<<<<<< HEAD
    Creating a new branch is quick & simple.
    =======
    Creating a new branch is quick AND simple.
    >>>>>>> feature1
    手动更改后 再add commit 生成一个合并修理后的记录
25.禁用Fast forward模式
    git merge --no-ff -m "merge with no-ff" dev
    --no-ff 表示禁用Fast forward 模式
    如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit
26.git stash
    将当前工作区现场'隐藏'起来 等以后回复继续工作
27.git stash list
    查看 '隐藏'的工作区在哪里
28.恢复工作区
    1.git stash apply 恢复不删除
    git stash drop   删除
    2.git stash pop 恢复的同时删除
    3.git stash list 查看隐藏工作区
29.多次stash 恢复指定的stash
    git stash apply stash@{0}
    没做完我要去解决个'bug'
    测试完 bug 回来这里还在。
    然后我要把这里的工作完成 并commit一次 然后远程推送合并dev
 30.git branch -D <name> 强行删除分支
    没有合并 git 会提醒

 31.git remote 查看远程库
    git remote -v 更详细信息
    上面显示了可以抓取和推送的origin的地址。如果没有推送权限,就看不到push的地址。
    一般工作用4个分支
    1.master  主分支     需要时刻同步
    2.dev     开发分支    共同开发所以也要随时同步
    3.bug     bug 分支   主要用于本地修复bug
    4.feature 新功能分支  同不同不看自己
 32.git checkout dev origin/dev 创建远程分支<name>到本地
 33.多人协作冲突
    坑死我的路劲问题 -_-。
    1.克隆下来 git clone
        Git 会自动为你将此远程仓库命名为 origin,并下载其中所有的数据,建立一个指向它的 master 分支的指针,
         在本地命名为 origin/master,但你无法在本地更改其数据。接着,Git 建立一个属于你自己的本地 master 分支,
         始于 origin 上 master 分支相同的位置,你可以就此开始工作
    2.到克隆的文件路径去 这是真的
    3.git remote 检查本地 指向远程分支 指针的名字 origin
    4.git branch 查看本地分支 此时只有一个 master(就算远程上有其他分支)
    5.git checkout -b dev origin/dev 创建与远程相同的本地分支
    6.可以我们的操作了。。。。。你是风儿....
    7.git push origin <分支名>
    8.git pull 解决冲突 先拉下来
    9.git branch --set-upstream-to=origin/dev dev 本地分支与远程分支链接
    没拉下来是没有建立连接(少做 git checkout -b dev origin/dev )
 34.git rebase 变基
    现在还没用上
 35.git tag <标签名>创建标签 方便找
    git tag stop-fast 902c8eaa

    git show 查看标签
    创建带有说明的标签,用-a指定标签名,-m指定说明文字:
    git tag -a v0.1 -m "version 0.1 released" 1094adb
 36.
     命令git push origin <tagname>可以推送一个本地标签;

     命令git push origin --tags可以推送全部未推送过的本地标签;

     命令git tag -d <tagname>可以删除一个本地标签;

     命令git push origin :refs/tags/<tagname>可以删除一个远程标签。
 37.git remote rm origin
    删除本地指向 远程的指针
    再关联其他远程仓库
 38.关联多个远程库 多个远程库不能使用默认远程库名 origin
    1.git remote rm origin 删掉已关联的库
    2.git remote add github git@github.com:.......
                        ↑
 39.配置git
    1.git config --global color.ui true 让git 更好看
    2.git config --global  --list 查看配置
 40.忽略特殊文件 .gitignore
 参照:https://www.cnblogs.com/kevingrace/p/5690241.html
     1.取消 untracked files 提示
      touch .gitignore 在Git工作区的根目录下创建一个特殊的.gitignore文件 git就不会提示
     2.git check-ignore 检查.gitignore文件
     3.全局屏蔽文件
     git config --global core.excludesfile '~/.gitignogtire'          linux
     git config --global core.excludesfile "%USERPROFILE%\.gitignore" windows


 41. git add -f App.class
     -f 强制添加
 42.配置别名
 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375234012342f90be1fc4d81446c967bbdc19e7c03d3000
  42.1.添加别名
  git config --global alias.<新命令> <旧命令>
    1.git config --global alias.st status      
    2.git config --global alias.co checkout
    3.git config --global alias.ci commit
    4.git config --global alias.br branch
    5.git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
    6.git config --global alias.mg merge
    7.git config --global alias.unstage 'reset HEAD --'
    8.git config --global alias.last 'log -1 HEAD'
    参照:https://blog.csdn.net/weixin_40969748/article/details/80886531
    add、commit两个命令合为一个
    version 2.17 只能用cm
    9.git config --global alias.cm '!f() { git add -A && git commit -m "$@"; }; f'
    使用时只需要 git cm "内容"
    将add、commit、push 三个命令合为一个
    10.git config --global alias.cmp '!f() { git add -A && git commit -m "$@" && git push; }; f' 
    使用时只需要 git cmp "内容"
    11.git config --global alias.bd 'branch -D'
  42.2.取消别名
    1.git config --global --unset alias.<名称>
  42.3 win10下全局配置目录
    C:\Users\Administrator\.gitconfig



 发现新建是字符串。
 43.
    --global参数是全局参数,也就是这些命令在这台电脑的所有Git仓库下都有用。
 44. 配置服务器
 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137583770360579bc4b458f044ce7afed3df579123eca000

 //====================================================
 阮一峰
 http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
 45.查看远程仓库
    git remote show origin
    克隆下来的时候有用
46.检查文件在.gitignore文件的哪条忽略规则中
git check-ignore -v App.class
47.私人项目
    1.添加协作者 发送邀请链接
    2.用本人账号,打开邀请链接,接受邀请
 */


/**
自建服务器
参照 https://blog.csdn.net/w252064/article/details/82691343
1. # yum info git  //查看 yum 源仓库的 Git 信息
//卸载低版本的 Git
4. # yum remove git
//下载新版的 Git 源码包(我放的了  /usr/local/git 的目录下了,git是我自己mkdir的目录)
5. # cd git

6.wget https://github.com/git/git/archive/v2.20.1.tar.gz
tar -xzvf v2.20.1.tar.gz
  # cd git-2.20.1
9.  # make prefix=/usr/local/git all
10. # make prefix=/usr/local/git install
 11.添加到环境变量
 vim /etc/profile
 export PATH="/usr/local/git/bin:$PATH"
 将git设置为默认路径,不然后面克隆时会报错
  # ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack

# ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack

# groupadd git
# useradd git -g git
# passwd git  #参数是用户名
# su - git  //切换git用户
【注】最好切换到git用户 不然后面新建的git仓库都要改权限

创建证书登录
# cd /home/git/
# mkdir .ssh #新建文件夹
# chmod 700 .ssh
# touch .ssh/authorized_keys  #新建文件
# chmod 600 .ssh/authorized_keys
生成密钥
git config --global user.name 'gitandjob'
git config --global user.email '2215861173@qq.com'
//-------------上面这个不知道为什么还要链接github

https://blog.csdn.net/martinwangjun/article/details/78780885


/home/git:/bin/git-shell
/home/git:/usr/local/git/bin/git-shell

克隆
http://test_data.lsing.top/gitmdata/gitmdata.git
git clone git@github.com:mikepxq/templateBasis.git
git clone git@test_data.lsing.top:/www/wwwroot/m-data.t/gitmdata/gitmdata.git

打开linux RSA 认证
vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
git init -bare
*/
/**
git 部署生成代码
https://blog.csdn.net/bencjl/article/details/53699684

解决远程不会自动更新
https://blog.csdn.net/xsthunder/article/details/51867505

*/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值