基础基础的基础

获取和创建项目

init

初始化一个git项目

# 初始化当前目录为git仓库
git init
# 初始化指定目录为git仓库
git init [repo_dir]

clone

将存储库克隆到新目录

# 拉去远程git仓库到本地,并且可以指定拉取的目录
git clone git_address [dir]

基本操作

add

将文件添加到git

git add .
# example: git add *.java
git add [pattern]

status

显示当前git的仓库的状态

git status

’ ’ = unmodified
M = modified
A = added
D = deleted
R = renamed
C = copied
U = updated but unmerged

diff

显示git的更改

git diff
git diff develop
git diff develop master
git diff filename

commit

提交代码,暂存到存储库

git commit -m "commit message"

restore

恢复文件

git restore filename

reset

重设HEAD指针

  1. Undo add 在你add file之后,却需要拉取最新的代码,可以尝试git reset
$ edit                                     (1)
$ git add frotz.c filfre.c
$ mailx                                    (2)
$ git reset                                (3)
$ git pull git://info.example.com/ nitfol  (4)
  1. Undo a commit and redo
$ git commit ...
$ git reset --soft HEAD^      (1)
$ edit                        (2)
$ git commit -a -c ORIG_HEAD  (3)
  1. 当您记得刚提交的内容不完整,或者拼写错误的提交消息,或者两者兼而有之时,通常会执行此操作

  2. 对工作树文件进行更正

  3. reset将旧的头复制到.git/ORIG_HEAD; 通过从其日志消息开始重做提交。 如果不需要进一步编辑消息,则可以给-C选项。

  4. HEAD^2 表示指针往前移动两步

  5. Undo a merge or pull

git pull
git reset --hard

rm

从工作树和索引中删除文件

git rm不会仅从您的工作目录中删除文件

git rm pattern

分支与合并

branch

查看,删除,创建分支

# 创建分支
git branch feature/id111
# 删除远程分支
git branch -d -r origin/devlop
# 删除未合并的分支
git branch -D test
# 查看所有分支
git branch -a

checkout

切换分支,或者还原文件

# 创建分支,并切换
git checkout -b feature/id111
## 还原hello.c文件
git checkout -- hello.c
# 切换分支
git checkout mytopic
# 当 当前分支有文件和要切换到的分支更改不同时,将不允许切换分支。可以使用-m参数,但是有可能会冲突
git checkout -m mytopic

switch

切换分支

git switch master
# 同checkout-m参数
git switch -m mytopic

merge

分支合并

# 将分支feature/id111合并到当前分支
git merge feature/id111

log

展示提交日志

git log
git log --oneline --graph

配置文件.git/config

[i18n]
	commitEncoding = UTF-8
    logOutputEncoding = UTF-8

tag

打标签

git tag tag_name
# 补标签
git tag -a tag_name commit_id

共享和提交项目

fetch

从另一个存储库下载对象和引用

pull

将更改从远程存储库合并到当前分支。 在默认模式下,git pullgit fetch的简写,其次是git merge FETCH_HEAD

$ git pull
$ git pull origin

push

推送代码。使用本地引用更新远程引用,同时发送完成给定引用所需的对象。

git push
git push origin
# 删除远程分支
git push origin --delete serverfix

remote

管理一组跟踪的存储库

  1. 创建一个新的git库。并合并到远程仓库
$ mkdir project.git
$ cd project.git
$ git init
$ git remote add -f -t master -m master origin git://example.com/git.git/
$ git merge origin
$ git push -u origin master

其中-t是分支。一般直接git remote add origin 地址即可

rebase

详见rebase使用

参考:

  1. 中文
  2. 原文