Git 常用命令
1. 本机初始化设置
- 设置姓名和邮箱地址
设置本机使用git时的姓名和邮箱地址
git config --global user.name "First name"
git config --global user.email "yor_email@example.com"
- 提高命令的可读性
git config --gloabl color.ui auto
使得命令的输出可读性增加
- 设置SSH Key
当Git连接到仓库时,需要SSH密钥进行认证。我们需要在本机创建公开密钥,将其添加到Git中。
ssh-keygen -t rsa -C "your_email@example.com"
<br>
创建密钥时需要输入密码,选择常用的密码。在Github中添加密钥时需要认证密码。
创建的密钥存储在 .ssh/id_rsa.pub 中
2. 常用命令
- clone 仓库
git clone git@your_repository.git
git@your_repository.git 是你的仓库的SSH clone URL,从GitHub中可以复制过来。
- 创建并初始化本地仓库
新建一个本地仓库,并且进行初始化。
git init [project-name]
-
Git提交常用命令
-
git add [file]
将文件加入暂缓区 -
git commit -m "[descriptive message]"
将暂缓区的文件保存到仓库中,-m 参数后的"[descriptive message]" 称作提交信息,为提交内容的概述。 -
git status
查看Git的当前状况 -
git log
查看提交日志。
如果想让提交信息只显示一行,在git log
命令后面加上 --pretty=short
查看文件的改动,可以加上-p
, 文件的差别将会显示在提交信息之后。
git log -p [file_name]
-
git diff
查看工作树和暂缓区的区别。
-
-
分支的操作
-
git branch
显示分支,左侧带有“*”的为当前的分支。 -
git checkout -b branch_name
创建并切换分支,“branch_name” 为分支的名字。这条命令相当于下面两条命令的集合
git branch branch_name git checkout branch_name
-
git checkout branch_name
切换到branch_name分支 -
git checkout -
切换到上一个分支. -
git merge --no-ff branch_name
先切换到主分支,然后创建合并提交。 -
git branch -d [branch_name]
删除[branch_name]分支。 -
消除冲突
当我们进行合并操作之后,修改的地方会有冲突。> ======= 以上的部分是当前HEAD的内容,以下部分是将要合并的分支的内容,在编辑器中进行修改成我们想要的内容即可。
修改完成后再次执行git add
,git commit
命令,解决冲突。 -
git log --graph
以图表的形式查看分支,可以看到分支的创建和合并的具体情况。
-
-
更改提交操作
-
git reset --hard [hard]
回溯到提供的哈希值对应的时间点上。[hard]为哈希值。 -
git reflog
git log
只能查看以当前状态为终点的历史日志。使用git reflog
可以查看当前仓库的操作日志,可以查看到回溯历史之前的哈希值。
-
-
与远程仓库连接操作
-
git remote add origin [remot_repository.git]
执行上述 命令之后,Git将会将[remot_repository.git]
远程仓库名称设置为origin
。 -
git push -u origin master
当前分支的内容将会被推送给远程仓库origin
的master
分支。-u
在推送的过程中,将origin仓库的master分支设置为本地仓库的当前分支的上游(upstream)。 -
git clone [remote_repository]
clone远程仓库到本地 -
git checkout -b new_branch origin/branch1
-b 参数后面是本地仓库新建的分支名城,origin/branch1是获取来源分支的名城。该指令的意思为,以远程仓库的branch1 分支为来源,在本地仓库创建new_branch分支。 -
git pull origin [branch_name]
获取远程的最新仓库并且merge到本地分支。 -
git push [alias] [branch]
推送分支 -
git fetch
-
git fetch origin master
获取远程仓库的内容更新到本地仓库,不会自动merge
git log -p master ../origin/master
比较本地的master和origin/master分支的区别git merge origin/master
进行合并 -
另一种合并方法
git fetch origin master:tmp
创建本地分支tmp
,并获取远程仓库的master
分支。git diff tmp
将当前分支与tmp分支进行比较
git merge temp
将tmp分支合并到当前分支。
-
-
3. Git 存储
-
git stash
将所有没提交的修改全部存储起来。git stash是本地存储,不会通过git push 上传到服务器中。
git stash save "message"
“message”用来记录版本 -
git stash pop
重新应用缓存的stash,并且删除stash内容
git stash apply
可以将存储的stash多次应用到工作区,并不删除stash拷贝 -
git stash list
显示现有的stash,可以使用git stash apply [stash_name]
选择应用哪一个stash内容 -
git stash drop [stash_name]
删除指定的stash
git stash clear
清除全部的stash -
查看stash的不同
git stash show [stash_name]
显示stash 内容的更改。命令后面加入-p
,--patch
可以查看到全部的不同 -
从stash中创建分支
git stash branch new_branch
从stash中创建新的分支new_branch。
本文来自:https://www.liulongtao.com/article/1# Git 常用命令