GIT常用的基础命令

简介: 1.起步用户信息配置你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:$ git config --global user.name “youname”$ git config --global user.email “12345@example.com”如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个(见图1),以后你所有的项目都会默认使用这里配置的用户信息。

1.起步

用户信息

配置你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:

$ git config --global user.name “youname”

$ git config --global user.email “12345@example.com”

如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个(见图1),以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的项目中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前项目的 .git/config 文件里。

 

图1

 

2.GIT基础

查看配置信息

查看已有的配置信息

$ git config --list

$ git config -l

 

获取帮助

例如想获取config命令的帮助信息

$ git help config 

$ git config --help

 

初始化新仓库

$ git init

初始化后,在当前目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。

 

如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:

跟踪文件:(将文件加到暂存区域)

$ git add readme.txt

跟踪全部文件

$ git add .

提交更新

$ git commit -m “first version”

上传(推送)到github

$ git push origin master

 

从现有仓库克隆

$ git clone git://github.com/youname/project.git

$ git clone git@github.com:youname/project.git

$ git clone https://github.com/youname/project.git

 

检查当前文件状态

$ git status

 

创建.gitignore文件

$ touch .gitignore

 

 

查看修改之后没有暂存起来的内容

$ git diff

 

移除文件

$ git rm readme.txt

 

重命名文件

$ git mv oldname.txt newname.txt

 

查看提交历史

$ git log

 

取消暂存

$ git reset HEAD .gitignore

 

 

 

添加远程仓库(远程仓库必须先在github上建好)

$ git remote add [shortname] [url]

实例:

$ git remote add origin git@github.com:youname/yourRepo.git

 

推送数据到仓库

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

如果要把本地的 master 分支推送到origin服务器上(再次说明下,克隆操作会自动使用默认的master 和origin 名字),可以运行下面的命令:

$ git push origin master

 

从远程仓库抓取数据

$ git fetch [remote-name]

 

碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库

远程仓库的删除

$ git remote rm origin

远程仓库重命名(此处命名的是上文添加远程仓库中的shortname)

$ git remote rename origin origin2

 

 

 

自动补全

输入命令后按tab键,就会看到列出所有匹配的可用命令建议:

$ git co<tab>


 

  

3.GIT分支

创建一个名为“testing”的分支

$ git branch testing

 

 

 

切换到“testing”分支(默认为master分支)

$ git checkout testing

 

新建并切换到该分支

$ git checkout -b iss53

这条命令相当于执行下面这两条命令

$ git branch iss53

$ git checkout iss53

 

删除hotfix分支(如果该分支还未被合并则会提示错误,因为这样会丢失数据)

$ git branch -d hotfix

强制删除hotfix分支(强制删除,不会提示错误)

$ git branch -D hotfix

 

 

合并iss53分支(先切换到master分支)

$ git checkout master

$ git merge iss53

 

查看当前所有分支

$ git branch

 

查看各个分支最后一个提交对象的信息

$ git branch -v

 

查看已经与当前分支合并的分支(已经合并的查出来后可以删掉)

$ git branch --merge

 

查看未与当前分支合并的分支

$ git branch --no-merged

 

同步远程服务器数据到本地

$ git fetch origin

 

从新添加的远程仓库下载数据

$ git remote add teamone git://git.team1.ourcompany.com

$ git fetch teamone

 

分化一个新的分支(使用这个命令会从服务器上下载master最新的版本,所以如果当前本地版本不是最新的,新的分支和本地分支会不同)

$ git checkout -b test1 origin/master

假如你用这个新的分支进行git push,并且通过了合并,那么会在远程仓库建立一个新的同名分支

删除该分支的方法

$ git push origin :test1

 

衍合:根据当前分支(也就是要进行衍合的分支test1)后续的历次提交对象(这里只有一个 C3),生成一系列文件补丁,然后以基底分支(也就是主干分支master)最后一个提交对象(C4)为新的出发点,逐个应用之前准备好的补丁文件,最后会生成一个新的合并提交对象(C3'),从而改写 test1的提交历史,使它成为master分支的直接下游


图 把 C3 里产生的改变到 C4 上重演一遍


分支的衍合:将test1分支衍合到master主分支

$ git checkout test1

$ git rebase master

另一种方法,直接衍合,不用再先切换到test1

$ git rebase master test1

 

 

 

 

快进master分支

$ git checkout master

$ git merge client

 

衍合:一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行衍合操作。

相关文章
|
3月前
|
存储 开发工具 git
|
15天前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
36 1
[Git]入门及其常用命令
|
3月前
|
开发工具 git
【GIT 第二篇章】GIT常用命令
Git常用命令涵盖初始化、状态管理、提交、分支处理、远程操作等关键流程。`git init`启动本地仓库,`git clone`下载远程仓库。通过`git status`和`git diff`检查工作状态与差异。利用`git add`暂存文件,`git commit`保存更改。借助`git branch`、`git checkout`、`git merge`和`git rebase`管理分支。使用`git fetch`、`git pull`和`git push`同步远程仓库。通过`git reset`、`git revert`和`git checkout`实现版本回退。
67 0
|
1月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
111 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
18天前
|
开发工具 git 开发者
|
18天前
|
开发工具 git 开发者
提升Git效率:掌握这5个高级命令
【10月更文挑战第17天】
40 0
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
2月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
2月前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
本文介绍 Git 的核心概念,如仓库、提交、分支与合并,并提供了常用命令,如初始化仓库 (`git init`)、提交更改 (`git commit -m &quot;Commit message&quot;`)、拉取 (`git pull`) 和推送 (`git push`) 等。此外,还分享了高级技巧,如撤销提交 (`git revert &lt;commit&gt;`)、交互式暂存 (`git add -i`) 和使用别名简化命令 (`git config --global alias.ci commit`) 等,帮助开发者提升效率。无论是初学者还是资深开发者,都能从中受益。