Git学习之路(2)——Git的常见命令以及配置

Git常用命令

这里记一下常见的 Git 命令以及它的作用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
git branch 查看本地所有分支
git status 查看当前状态
git commit 提交
git branch -a 查看所有的分支
git branch -r 查看远程所有分支
git commit -am "init" 提交并且加注释
git remote add origin git@192.168.1.119:ndshow
git push origin master 将文件给推到服务器上
git remote show origin 显示远程库origin里的资源
git push origin master:develop
git push origin master:hb-dev 将本地库与服务器上的库进行关联
git checkout--track origin/dev 切换到远程dev分支
git branch-D master develop 删除本地库develop
git checkout-b dev 建立一个新的本地分支dev
git merge origin/dev 将分支dev与当前分支进行合并
git checkout dev 切换到本地dev分支
git remote show 查看远程库
git add .
git rm 文件名(包括路径)从git中删除指定文件
git clone git://github.com/user/project.git 从服务器上将代码给拉下来
git config--list 看所有用户
git 1s-files 看已经被提交的
git rm[file name]删除一个文件
git commit -a 提交当前repos的所有的改变
git add[file name]添加一个文件到git indexgit commit-v 当你用-v参数的时候可以看commit的差异
git commit -m "This is the message describing the commit" 添加commit信息
git commit -a -v 一般提交命令
git log 看你commit的日志
git diff 查看尚未暂存的更新
git rm a.a 移除文件(从暂存区和工作区中删除)
git rm --cached a.a 移除文件(只从暂存区中删除)
git commit -m "remove" 移除文件(从Git中删除)
git rm -f a.a 强行移除修改后文件(从暂存区和工作区中删除)
git diff--cached 或 git diff--staged查看尚未提交的更新
git stash push 将文件给push到一个临时空间中
git stash pop 将文件从临时空间pop下来
--------------------------------------
git remote add origin git@github.com:username/Hello-world.git
git push origin master将本地项目给提交到服务器中
--------------------------------------
git pull 本地与服务器端同步
--------------------------------------
git push(远程仓库名)(分支名)将本地分支推送到服务器上去。
git push origin serverfix:awesomebranch
--------------------------------------
git fetch 相当于是从远程获取最新版本到本地,不会自动merge
git commit -a -m "1og_message"(-a是提交所有改动,-m是加入1og信息)本地修改同步至服务器端:
git branch branch_0.1 master 从主分支master创建branch_0.1分支
git branch -m branch_0.1 branch_1.0 将branch_0.1重命名为branch_1.0
git checkout branch_1.0/master 切换到branch_1.0/master分支
du-hs
--------------------------------------
git branch 删除远程branch
git push origin :branch_remote_name
git branch -r -d branch_remote_name
--------------------------------------
初始化版本库,并提交到远程服务器端
mkdir project
cd project
git init 本地初始化
touch README
git add README 添加文件
git commit -m 'first commit'
git remote add origin git@github.com:user/project.git

Git配置用户签名

用处

如果想要将本地的项目提交的远程仓库的话,必须要设置签名。签名的作用就是用来标识用户,以区分不同的开发人员。

设置方式

  1. 一种是为单个仓库单独设置,这种方式只针对单个仓库有效;
  2. 另一种是全局配置,采用这种方式配置后,所有仓库都有效。如果对两种方式都进行了配置,那么会优先使用单个仓库配置方式的配置信息。

方式1(单个仓库有效)

1
2
git config user.name 用户名
git config user.email 邮箱

该种方式配置信息会保存在当前仓库目录下的.git/config文件中,打开查看发现保存的格式为:

1
2
3
[user]
nanme = 用户名
Email= 邮箱

方式二(全局有效)

1
2
git config --global user.name 用户名
git config --global user.email 邮箱

该种方式配置信息会保存在系统盘的系统用户目录下的.gitconfig文件中,保存格式同上面一样。

Git初始化本地库

初始化命令

git init 将当前工作目录初始化为一个本地库,此时会生成一个 .git 目录。

Git目录

Git目录是为你的项目存储所有历史和元信息的目录-包括所有的对象(commits,trees,blobs,tags),这些对象指向不同的分支. 每一个项目只能有一个Git目录,这个叫.git的目录在你项目的根目录下(这是默认设置,但并不是必须的).如果你查看这个目录的内容,你可以看所有的重要文件:

1
2
3
4
5
6
7
8
HEAD		#这个git项目当前处在哪个分支里
config #项目的配置信息,git config命令会改动它
description #项目的描述信息
hooks/ #系统默认钩子脚本目录
index #索引文件,暂存区(stage)
1ogs/ #各个refs的历史信息
objects/ #Git本地仓库的所有对象(commits,trees,blobs,tags)
refs/ #标识你项目里的每个分支指向了哪个提交(commit).

Git的状态

使用命令 git status 查看当前 git 的状态。

  • Changes to be committed:表示已经从工作区add到暂存区的file(文件或文件夹),可以通过 git estore--staged filename 命令将该file从暂存区移出,只有工作区有该文件,该文件就为Untracked files
  • Changes not staged for commit:表示工作区,暂时区都存在的file(文件或文件夹),在工作区进行修改或删除,但是没有add到暂存区,可以通过git add file命令将变更(修改,删除)的file add到暂存区,此时该file没有Changes not staged for commit状态,也就是Changes not staged for commit将没有改file的记录了。可以通过git restore file的命令取消在file在工作区的变更,那么暂存区的file内容还是以前的,并且file在Changes not staged for commit 状态下没有记录。
  • Untracked files :表示只在工作区有的file(文件或文件夹),也就是在暂时区没有该file。

将代码添加到暂存区

基本用法

git add 命令可将该文件添加到暂存区。 添加一个或多个文件到暂存区:

1
git add [file1] [file2] ...

添加当前目录所有文件。

1
git add .

git add .与git add -u和git add -A的区别

  • git add .:他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
  • git add -u:他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u不会提交新文件(untracked file)。(git add --update的缩写)
  • git add -A:是上面两个功能的合集(git add--all的缩写)

Git 提交代码

作用

git commit 命令将暂存区的内容添加到本地仓库

命令

1
git commit -m [message] [file1] [file2] ...

直接提交

使用 git commit -am [message] 可以提交被修改的所有文件而不需要重新 git add

Git版本控制

我们每次提交代码都会产生一个版本,便于我们随时恢复到原来的版本。

查看版本信息

1
git reflog

切换版本

1
git reset --hard 版本号

这里的版本号其实就是我们 commit 提交的一个 SHA1 散列值,我们这里也可以填写七位的散列值作为版本号,这里我们就可以随时切换回之前的版本。