Git整理 / 网络研习社#28

Git整理 / 网络研习社#28

抽空把git的命令整理了一下,它们还是很有用的。一些资料和代码适时地整理下,以后用的时候能方便点。远程用的coding,国内的速度能快点。github项目是多,不过速度在那,只能用于学习。

git

目录

下载与资源

1
2
官网:  https://git-scm.com/
帮助:https://www.liaoxuefeng.com/

工作区和版本库

git.jpg

工作区(Working Directory):就是你在电脑里能看到的目录。

暂存区(StagingArea):英文叫stage, 或index。Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。一般存放在”git目录”下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库(Repository):工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

创建版本库

1
2
3
4
5
6
7
8
9
10
11
12
apt install git        
git help
git help -a
git help <name>

git init 初始化
git config –-global user.name 'name'
git config –-global user.email 'email'
/name:lemooljiang
/email:497867999@qq.com
git config --unset user.name
git config --list

提交和删除版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
git status             查看状态

git add <name> 提交指定文件
git add . 提交多个文件到暂存区
git commit –m 'things' 提交到分支

git log 查看日志
git log –-oneline 单行查看日志
git mv <name> 修改暂存区文件名
git rm <name> 删除暂存区文件
git rm -f <name> 删除暂存区和本地文件

git checkout . 放弃所有的文件修改(未使用 git add 缓存代码时)。
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

git checkout -- <name>

版本回退

1
2
3
4
5
6
7
8
9
10
git revert HEAD^       回退到上一个版本
git revert HEAD~7 回退上7个版本

git reset HEAD . 放弃所有的缓存 (已经使用了git add 缓存了代码)
git reset HEAD^ 文件退回到工作区(默认mixed)
git reset HEAD^ --mixed 文件退回到工作区
git reset HEAD^ --soft 文件退回到暂存区
git reset HEAD^ --hard 文件退回到没创建前(即删除!)

git reset commit_id

分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
git branch name  创建分支
git checkout name 切换到分支
git checkout –b name 创建并切换到此分支

git branch 查看当前分支
git branch –r 查看远程分支
git branch –a 查看全部分支

git diff 查看分支中文件是否有改动
git diff master..dev 比较两个分支间的区别
git merge name 快进合并到主分支 git merge dev
git merge --no-ff -m "merge with no-ff" dev 非快进合并,会将合并的提交写入日志
git branch –d name 删除分支
git branch -m dev2 dev 修改分支名

Bug分支

1
2
3
4
5
6
7
8
9
10
11
12
git stash  把当前工作现场“储藏”起来,等以后恢复现场后继续工作(dev)
git checkout master
git checkout -b issue-101 创建bug分支

git add readme.txt
git commit -m "fix bug 101"

git checkout master 切换回主分支并合并
git merge --no-ff -m "merged bug fix 101" issue-101

git checkout dev
git stash pop 恢复开发现场

Feature分支

每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支。

1
2
3
4
5
6
7
8
git checkout -b feature-vulcan  

git add vulcan.py
git commit -m "add feature vulcan"

git checkout dev
git merge --no-ff -m "merged feature" feature-vulcan
如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除

远程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
git remote add origin url  关联到远程
git remote add origin https://github.com/lemooljiang/git-test.git
git remote remove origin 删除远程关联
git remote –v 查看关联

git push -u origin master / git push -u origin dev 推送到远程
git push origin master /第二次推送无需加 u

git pull origin master 获取远程分支

# 从远程克隆分支
git clone git@github.com:michaelliao/gitskills.git
git clone https://github.com/michaelliao/gitskills.git

git fetch origin master 获取更新合并
git merge oigin master

alias别名

1
2
3
4
5
6
git config --global alias.ci commit  将commit简写为ci
git config --global alias.st status 将status简写为st
git config --global alias.lg 'log --oneline'

每个仓库的Git配置文件都放在 .git/config文件中,可以在这里修改别名
或是在 主目录(~).gitcinfig

SSH登录github

1
2
3
4
5
6
7
ssh-keygen -t rsa -C 'YouEmail'
cat ~/.ssh/id_rsa.pub
将显示的内容全部复制
登录 github-> Settings-> SSH and GPG Keys-> New SSH key 添加

测试是否添加成功
ssh -T git@github.com

忽略特殊文件

在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件。


网络研习社系列文章:


 @lemooljiang #network-institute


This page is synchronized from the post: ‘Git整理 / 网络研习社#28’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×