Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Git学习 #13

Open
Vxee opened this issue Aug 5, 2018 · 0 comments
Open

Git学习 #13

Vxee opened this issue Aug 5, 2018 · 0 comments

Comments

@Vxee
Copy link
Owner

Vxee commented Aug 5, 2018

最近看到一个网址http://iissnan.com/progit/html/zh/ch1_0.html。准备开始系统地学习一下Git的使用。在此记录一下。

Git基础

在工作目录中初始化新仓库

$ git init

当前目录下会出现.git文件夹

$ git add

对文件进行跟踪。把目标文件快照放入暂存区域,也就是 add file into staged area,同时未曾跟踪过的文件标记为需要跟踪。

$ git add *.c
$ git add README
$ git commit -m 'initial project version'

从现有仓库中克隆

克隆仓库的命令格式为 git clone [url]

检查当前文件状态

$ git status

跟踪新文件

$ git add filename

忽略文件

首先创建一个.gitignore文件

$ cat .gitignore
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# ignore all .txt files in the doc/ directory
doc/**/*.txt

查看已暂存和未暂存的文件

$ git diff

此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。

$ git diff --cached

查看已经暂存起来的文件和上次提交时的快照之间的差异。

提交更新

$ git commit -m 'some message'

跳过使用暂存区域

$ git commit -a -m 'added new benchmarks'

Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤。

移除文件

$ git rm [filename]

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,仅是从跟踪清单中删除。

$ git rm --cached [filename]

移动文件

$ git mv file_from file_to

查看提交历史

$ git log

可选参数:
-p: 展开显示每次提交的内容差异
-2: 仅显示最近的两次更新

 git log -p -2

单词层面的对比

git log -U1 --word-diff

简化log输出

git log --pretty=oneline

撤销操作

修改最后一次提交

$ git commit --amend

取消已暂存的文件

git reset HEAD <file>

取消对文件修改

$ git checkout -- [filename]

远程仓库的使用

查看远程仓库

$ git remote -v

添加远程仓库

$ git remote add [shortname]  [url]

从远程仓库抓取数据

$ git fetch [remote-name]

推送数据到远程仓库

$ git push [remote-name] [branch-name]

查看远程仓库名称

$ git remote show [remote-name]

远程仓库的删除和重命名

$ git remote rename [old name] [new name]

Git 分支

创建分支

$ git branch [name]

HEAD是一个指向你正在工作中的本地分支的指针,创建了一个分支后并不会自动切换到这个分支中去。

切换分支

$ git checkout [name]

可以合并成一条命令,创建分支并切换

$ git checkout  -b [name]

分支合并

$ git merge [branchname]

推送本地分支

$ git push (远程仓库名) (分支名)

跟踪远程分支

$ git checkout -b [分支名] [远程名]/[分支名]

删除远程分支 即省略本地分支的名字

$ git push [远程名] :[分支名]

#git工具

交互式暂存

$ git add -i

储藏

只想切分支,不想提交正在进行的工作

$ git stash

显示储藏列表

$ git stash list

应用存储

$ git stash apply [名字]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant