Linux下git与github初步学习

新手照着打
总会习惯的

$ sudo apt-get install git
//创建版本库

$ cd /桌面
$ mkdir learngit 
$ pwd
$ git init
$ vim a.c
$  git add a.c 
$ git commit  -m "注释"
$ git add file1.txt  file2.c
$ gir commit -m  "add something from adl's native linux"
//创建版本库

$ git log
$ git log --pretty=oneline
$ git reset --hard HEAD^
//git reset --hard HEAD^^
//git reset --hard HEAD~100
$ cat a.txt
$ git reset --hard f3cc
$ git relog 
$ git reset --hard b116
//版本回退

$ git status
//查看工作区和暂存区状态

$ git checkout -- a.txt
//撤销工作区至版本库或暂存区
// --不可遗漏
$ git reset HEAD a.txt
//把暂存区的a.txt 放回工作区
$ rm a.txt
$ git rm a.txt
$ git commit -m "删文件跑路"
//彻底删除本地和版本库中的a.txt
$ git checkout -- a.txt
//万能后悔药,把库中的还原到工作区
//这会让人联想到克隆人思维,那若你死了,
//你的思想还活着,但你却完全不知道你那时
//候是控制着这个思想的,还是说有个完全一样
//的思想取代了你,你不再(活着)

$ ssh-keygen -t rsa -C "[email protected]"
$ cd .ssh
$ cat id_rsa
$ cat id_rsa.pub
//在github ADD SSH KEY 将id_rsa.pub的公钥粘贴到key
//文本框

//在github建了仓库后,取名firstlearn
$ cd 桌面/learngit
$ git remote add origin [email protected]:yourgithubname/firstlearn.git
//连接你的linux下的learngit仓库和github 下的firstlearn仓库
//并用origin来作为你的git识别这个远程仓库的别名,

//上传
//-u 使得本地的master 和远程master相连
$ git push -u origin master
//之后方便的只用
$ git push origin master

//将github的仓库拷贝到你的linux下
//在github新建仓库gitskills
//注意勾选下方的initialize this repository with a readme
$ git clone [email protected]:yourgithubname/gitskills.git
$ cd gitskills
$ ls 
//你会发现一个叫readme的文件cat它看到skills大字

//
$ git checkout -b dev
//建立并切换新分支
$ git branch 
//查看当前分支
//在此分支下修改并提交a.txt文件,切换分支回master
$ git checkout master 
//修改的部分消失
$ git merge dev 
//将dev剪枝合并到当下分支master
$ git branch -d dev
//删除dev分支
$ git branch
//dev消失

//新版git的switch语法(我的没有哭)
$ git switch -c dev 
//建立并切换新分支
$ git switch master
//切换分支

//分支两端都上传---add,commit同一文件会怎么样
$ git checkout -b features
//vim a.txt 修改
$ git add a.txt
$ git commit -m "first"
$ git checkout master
//vim a.txt 修改
$ git add a.txt
$ git commit -m "second"
$ git merge feature1
//合并失败
$ git status 
//存在冲突
$ vim a.txt
把那些奇奇怪怪的玩意儿删了,自己重写那些部分
$ git add a.txt
$ git commit -m "conflict fixed !"
$ git log --graph --pretty=oneline --abbrey-commit
//查看分支的合并情况,是的,他的在没有merge的
//情况下合并了!!!feature1存在,合并的内涵应该
//是两处的文件内容同步
$ git branch -d feature1

//no ff合并需要加-m"..."
$ git checkout -b dev
$ git add a.txt
$ git commit -m "add merge "
$ git checkout master
$ git merge --no --ff -m "merge with no-ff"dev
$ git log --graph --pretty=oneline --abbrev-commit


是的我就写了一半
等我用到了再写那另一半把

learn from https://www.liaoxuefeng.com/wiki/896043488029600/896827951938304

发布了14 篇原创文章 · 获赞 3 · 访问量 555

猜你喜欢

转载自blog.csdn.net/adlatereturn/article/details/103378371