Git常用命令总结

Git常用命令总结

一、Git的简介

Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理。Git本身完全可以做到版本控制,但其所有内容以及版本记录只能保存在本机,如果想要将文件内容以及版本记录同时保存在远程,则需要结合github来使用。


二、Git的工作流程

​ 1.Git的工作流程

  • ​ 克隆Git资源作为工作目录

  • ​ 在克隆的资源上添加或修改文件

  • ​ 如果其他人修改了,你可以更新资源

  • ​ 在提交前查看修改

  • ​ 提交修改

  • ​ 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交

​ 2.下图展示了Git的工作流程:


三、Git的常用命令

​ 1.使用当前目录作为Git仓库,我们只需要使它初始化。

​ git init

​ 2.使用我们指定的目录作为Git仓库

​ git init newrepo

​ 3.将文件提交到仓库中

# 以下命令将目录下以.c结尾及README文件提交到仓库中
​$ git add *.c
​$ git add README
​$ git commit -m '初始化项目版本'

​ 4.克隆仓库

​ git clone

例如:$ git clone git://github.com/schacon/grit.git
  1. 克隆仓库到指定目录

git clone

例如:$ git clone git://github.com/schacon/grit.git mygrit
  1. git的设置命令
# 显示当前的git配置信息
$ git config --list
# 针对当前仓库编辑 git 配置文件
$ git config -e
# 针对系统上的所有仓库编辑 git 配置文件
$ git config -e --global
# 设置提交代码时的用户
# 如果去掉 --global参数只对当前仓库有效
$ git config --global user.name "用户名"
$ git config --global user.email 邮箱地址
  1. git的提交与修改命令
# 添加文件到仓库
$ git add
# 查看仓库当前的状态,显示有变更的文件
$ git status
# 比较文件的不同,即暂存区和工作区的差异
$ git diff
# 提交暂存区到本地仓库
$ git commit
# 回退版本
$ git reset
# 删除工作区文件
$ git rm
# 移动或重命名工作区文件
$ git mv
  1. 提交日志
# 查看历史提交记录
$ git log
# 以列表形式查看指定文件的历史修改记录
$ git blame <file>
  1. 远程操作
# 远程仓库操作
$ git remote
# 从远程获取代码库
$ git fetch
# 下载远程代码并合并
$ git pull
# 上传远程代码并合并
$ git push
  1. git分支管理
 # 创建分支命令
 $ git branch (branchname)
 # 切换分支命令
 # 当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容, 所以多个分支不需要多个目录。
 $ git checkout (branchname)
 # 合并分支命令
 $ git merge
 * master
 # 这个例子的意思时,我们有一个分支叫做master,默认情况下Git就会为你创建master分支。
 # 列出分支命令
 $ git branch
 # 切换分支
 $ git branch testing
 $ git checkout testing
 # 这个例子的意思时创建了一个testing分支,并且切换到这个分支。
 # 删除分支
 $ git branch -d (branchname)
 # 实例:将其他分支合并到当前分支中去,并且合并完之后删除
 $ git branch
 * master
   newtest
 $ ls
 README        test.txt
 $ git merge newtest
 Updating 3e92c19..c1501a2
 Fast-forward
  runoob.php | 0
  test.txt   | 1 -
  2 files changed, 1 deletion(-)
  create mode 100644 runoob.php
  delete mode 100644 test.txt
 $ ls
 README        runoob.php
 $ git branch -d newtest
 Deleted branch newtest (was c1501a2).

​ 11.分支合并冲突

# 合并并不仅仅是简单的文件添加、移除的操作,Git 也会合并修改。
$ git branch
* master
$ cat runoob.php
# 首先,我们创建一个叫做 change_site 的分支,切换过去,我们将 runoob.php 内容改为:
<?php
echo 'runoob';
?>
# 创建 change_site 分支:
$ git checkout -b change_site
Switched to a new branch 'change_site'
$ vim runoob.php
$ head -3 runoob.php
<?php
echo 'runoob';
?>
$ git commit -am 'changed the runoob.php'
[change_site 7774248] changed the runoob.php
 1 file changed, 3 insertions(+)
 
# 将修改的内容提交到 change_site 分支中。 现在,假如切换回 master 分支我们可以看内容恢复到我们修改前的 (空文件,没有代码),我们再次修改 runoob.php 文件。
$ git checkout master
Switched to branch 'master'
$ cat runoob.php
$ vim runoob.php    # 修改内容如下
$ cat runoob.php
<?php
echo 1;
?>
$ git diff
diff --git a/runoob.php b/runoob.php
index e69de29..ac60739 100644
--- a/runoob.php
+++ b/runoob.php
@@ -0,0 +1,3 @@
+<?php
+echo 1;
+?>
$ git commit -am '修改代码'
[master c68142b] 修改代码
 1 file changed, 3 insertions(+)
# 现在这些改变已经记录到我的 "master" 分支了。接下来我们将 "change_site" 分支合并过来。
$ git merge change_site
Auto-merging runoob.php
CONFLICT (content): Merge conflict in runoob.php
Automatic merge failed; fix conflicts and then commit the result.

$ cat runoob.php     # 代开文件,看到冲突内容
<?php
<<<<<<< HEAD
echo 1;
=======
echo 'runoob';
>>>>>>> change_site
?>
# 我们将前一个分支合并到 master 分支,一个合并冲突就出现了,接下来我们需要手动去修改它。
$ vim runoob.php 
$ cat runoob.php
<?php
echo 1;
echo 'runoob';
?>
$ git diff
diff --cc runoob.php
index ac60739,b63d7d7..0000000
--- a/runoob.php
+++ b/runoob.php
@@@ -1,3 -1,3 +1,4 @@@
  <?php
 +echo 1;
+ echo 'runoob';
  ?>
# 在 Git 中,我们可以用 git add 要告诉 Git 文件冲突已经解决
$ git status -s
UU runoob.php
$ git add runoob.php
$ git status -s
M  runoob.php
$ git commit
[master 88afe0e] Merge branch 'change_site'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值