git

270 阅读4分钟

1、安装git

git config --global user.name 'XXX'
git config --global user.email 'XXX'

2、创建仓库(repository)---暂存区

mkidir learngit //自定义文件夹
cd learngit
touch test.md //创建test.md文件pwd //显示当前目录

3、常用

git init    //初始化代码仓库
git add learngit.txt    //把文件添加到暂存区
git commit -m 'add a file'    //把文件提交到暂存区
git status                //查看工作区状态
git diff                  //查看文件修改内容
git log                   //查看提交历史
git log --pretty=oneline  //单行显示
git reset --hard HEAD^  //回退到上一个版本,其中(HEAD^^(上上版本),HEAD~100(往上100个版本))
git push -f origin master    // 强制提交
commit id                //(版本号) 可回到指定版本
git reflog               //查看历史命令

删除远程连接:
git remote rm origin
其中说明【
工作区(Working Directory)--- 本地文件夹
版本库(Repository) #.git文件夹 ---暂存区
stage(index) 暂存区
master Git自动创建的分支
HEAD 指针

git diff HEAD -- <file>     //查看工作区和版本库里最新版本的区别
git checkout -- <file>    //用版本库的版本替换工作区的版本,无论是工作区的修改还是删除,
                        都可以'一键还原', 让文件回到最近一次git commit或git add时的状态
git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令
git reset HEAD <file>    //把暂存区的修改撤销掉,重新放回工作区。
git rm <file>  //删除文件,若文件已提交到版本库,不用担心误删,但是只能恢复文件到最新版本

4. 远程仓库

git remote add origin http....git    //添加后,远程库的名字就是origin,这是Git默认的叫法,
                                    也可以改成别的,但是origin这个名字一看就知道是远程库。

git push -u origin master    // 把本地库推送到远程库上,用git push命令,实际上是把当前分
    支master推送到远程。由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但
    会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支
    关联起来,在以后的推送或者拉取时就可以简化命令。
将代码push到远程新建的git仓库
将git pull origin master   改为
git pull origin master --allow-unrelated-histories

5、分支

git checkout -b dev    //创建并切换分支,git checkout 加 -b 相当于git branch dev 
                         和git checkout dev两条命令
git branch    //列出所有分支,当前分支前面会标一个*号
git branch <name>    //创建分支
git checkout <name>    //切换分支
// 克隆规定分支代码: git clone -b 分支名 http://git....git
如:  git clone -b V2 http://git.awyun.net/fliu2476/zillionaire.git
git merge <name>    //合并某个分支到当前分支
git branch -d <name>     //合并后删除分支

git switch -c dev    //创建并切换到新分支
git switch <name>    //切换分支

git merge --no-ff -m 'message' dev    //禁用Fast forward合并dev分支。合并分支时,加
             上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,
             而fast forward合并就看不出来曾经做过合并。


git stash    //隐藏当前工作现场,等恢复后继续工作
git stash list    //查看stash记录
git stash apply    //仅恢复现场,不删除stash内容
git stash drop    //删除stash内容
git stash pop    //恢复现场的同时删除stash内容
git branch -D <name>    //强行删除某个未合并的分支//开发新feature最好新建一个分支
git remote    //查看远程仓库
git remote -v    //查看远程库详细信息
git pull    //抓取远程提交

git push origin master
git push origin dev
git checkout -b branch-name origin/branch-name    //在本地创建和远程分支对应的分支
git branch --set-upstream branch-name origin/branch-name   //建立本地分支和远程分支的关联

6、其他---标签

git tag v1.0     //给当前分支最新的commit打标签
git tag -a v0.1 -m 'version 0.1 released' 3628164    //-a指定标签名,-m指定说明文字
git tag -s <tagname> -m 'blabla'   //可以用PGP签名标签
git tag  //查看所有标签
git show v1.0    //查看标签信息
git tag -d v0.1   //删除标签
git push origin <tagname>   //推送某个标签到远程
git push origin --tags     //推送所有尚未推送的本地标签

test

git init
git remote add origin http
git pull
git pull http... master
git checkout -b dev
git add .
git commit -m 
git push origin dev 

github避免重复输入用户名密码

www.dazhuanlan.com/2019/11/05/…