Git与GitHub简明记录

由于此文章只是想记录自己的学习过程 本人又是Linux 所以下文讨论的问题都是在Linux环境下

无意之中在图书馆发现一本《GitHub入门与实践》 又因为之前一直听本人安利GitHub有多厉害。。。然后就入了坑 其实也不算坑 话不多说
聊一聊Git与GitHub

安装Git

$ sudo apt-get install git

设置用户名和邮箱

lockeroots-1215T ~ $git config user.name "lockeroots"
lockeroots-1215T ~ $git config user.email "lockeroots1126@gmail.com"

查看用户名设置

lockeroots@lockeroots-1215T ~ $ git config --list
user.name=lockeroots
user.email=lockeroots1126@gmail.com

现在就新建一个目录,做为Git专用

初始化

$git init

现在在刚刚建立的目录就有个.git目录

开始操作了

 lockeroots@lockeroots-1215T ~/git $ ls
test.txt
lockeroots@lockeroots-1215T ~/git $ git status
On branch master

Initial commit

Untracked files:
  (use "git add <file>..." to include in what will be committed)

    test.txt

nothing added to commit but untracked files present (use "git add" to track)
lockeroots@lockeroots-1215T ~/git $ git add test.txt
lockeroots@lockeroots-1215T ~/git $ git status
On branch master

Initial commit

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

    new file:   test.txt

lockeroots@lockeroots-1215T ~/git $ git commit -m "add test.txt"
[master (root-commit) e6d2491] add test.txt
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt
lockeroots@lockeroots-1215T ~/git $ git status
On branch master
nothing to commit, working directory clean

git add test.txt 表示把test文件提交到暂存区间
git commit -m “注释” 把暂存区间的文件提交到分支
git status 表示查看工作状态 看工作区间和暂存区间是否有文件

git log 查看提交日志
git log –oneline 日志只显示一行

lockeroots@lockeroots-1215T ~/git $ git log
commit e6d2491906760699a35fda129b875f2c097ef6a9
Author: lockeroots <lockeroots1126@gmail.com>
Date:   Tue May 31 22:47:22 2016 +0800

    add test.txt
lockeroots@lockeroots-1215T ~/git $ git log --oneline
e6d2491 add test.txt

git mv test.txt test1.txt 已经提交的文件text改名为test1
git rm test1.txt 删除已经提交的文件

git rm –cached test.txt 删除之后 本地文件不变
git rm -f test.txt 分支和本地文件一起删除

lockeroots@lockeroots-1215T ~/git $ git rm --cached lock.txt
rm 'lock.txt'
lockeroots@lockeroots-1215T ~/git $ ls
fuck.txt  lock.txt  test.txt
lockeroots@lockeroots-1215T ~/git $ git rm -f lock.txt
rm 'lock.txt'
lockeroots@lockeroots-1215T ~/git $ ls
fuck.txt  test.txt

git reset是返回版本的命令 但加的参数不同又有不同的效果
git reset –hard 把本地文件和分支文件一起删除
git reset –mixed 只删除分支文件不删除本地文件
git reset –soft 把提交的文件移动到占存区

 ~/git $ git log --oneline
a62ad40 add fuck
61600ad add lock
e6d2491 add test.txt
 ~/git $ git reset --hard HEAD^
HEAD is now at 61600ad add lock
~/git $ git log --oneline
61600ad add lock
e6d2491 add test.txt

git reset –hard HEAD^ 这个表示返回到上一个版本
git reset –hard HEAD^^ 返回上二个版本
假如我们要返回多个版本以前 怎么办 不可能一直加^^^^^^…
这时候要用到

 ~/git $ git log --oneline
a62ad40 add fuck
61600ad add lock
e6d2491 add test.txt

git reset –hard HEAD~e6d2491 这时候就返回到上三个版本以前了

一般我们是在其他扥至工作,然后把写好的代码在合并在主分支里去
所以。。。
分支

git branch 查看分支(带*表示当前分支)
git branch dev 创建dev分支
git checkout dev 切换到dev分支
git checkout -b dev 创建并切换到dev分支

 ~/git $ git branch
* master
 ~/git $ git branch dev
 ~/git $ git checkout dev
Switched to branch 'dev'
 ~/git $ git branch
* dev
  master

当我们在dev分支中创建了一些文件 想提交到主分支
首先要切换到主分支 然后合并dev分支 (删除dev分支,可以不删)

 ~/git $ git checkout master
Switched to branch 'master'
Your branch is up-to-date with 'origin/master'.
 ~/git $ git merge dev
Already up-to-date.
 ~/git $ ls
1.txt  lock.txt  test.txt
 ~/git $ git branch -d dev
Deleted branch dev (was 61600ad).
 ~/git $ git branch
* master

git merge dev 把dev分支合并到当前分支
git branch -d dev 删除dev分支

查看分支之间的差别
我先把1.txt文件修改一下
在使用命令
git diff master..test

 ~/git $ git diff master..test
diff --git a/1.txt b/1.txt
new file mode 100644
index 0000000..d6d58da
--- /dev/null
+++ b/1.txt
@@ -0,0 +1,2 @@
+1.txt
+---test

master是我的主分支
test是我刚刚另外创建的分支

有时我们会合并是会遇到一些冲突
git merge dev –no-ff -m “注释” 快进合并

当我们在test分支开发的时候
有人告诉我在master有bug
但我手头正在处理test分支 这时候我们可以把test分支的所有数据先封存起来
不给任何人动
git stash 创建封存
在创建处理bug的分支
处理完之后在切换到test分支
git stash pop 解封!!!
git stash lish 查看封存记录
如果有多个记录 我们要指定解封一个记录
git stash apply stash@{3} 指定解封第3个记录

GitHub

现在去GitHub官网
找到new repository(新建一个仓库,具体情况请google)
https://github.com/lockeroots1126/test这个就是我仓库地址咯

 ~/git $ git remote add origin git@github.com:lockeroots1126/test.git
lockeroots@lockeroots-1215T ~/git $ git push -u origin master
Counting objects: 6, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (6/6), 456 bytes | 0 bytes/s, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@github.com:lockeroots1126/test.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

git remote add origin git@github.com:lockeroots1126/test.git 把本地Git关联到远程的GitHub
git push -u origin master 提交master分支(也可以是dev)数据到远程仓库

现在找到怎么样把本地的文件提交到远程
但如何把远程的项目下载到本地呢???
git clone git@github.com:lockeroots1126/test.git 恩。这条命令可以下载远程仓库的内容

git branch -r 查看关联的远程分支有哪些
git branch -a 查看远程分支
我们也可以直接切换到远程仓库的分支上直接进行开发

待整理。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值