Git 有多种使用方式,可以使用原生的命令行模式,也可以使用 GUI 模式,这些 GUI 软件也能提供多种功能。而大多数的 GUI 软件只实现了 git 所有功能的一个子集以降低操作难度, 如果学会了在命令行下如何操作,那么在操作 GUI 软件时应该也不会遇到什么困难,但是,反之则不成立。 接下来我们一起了解下Git命令及原理。

git如何编辑远程代码(常用Git命令看这一篇就够了)(1)

git如何编辑远程代码(常用Git命令看这一篇就够了)(2)

如图所示 Git 为什么这么多步骤,它其实最初设计出来是给管理 Linux 内核社区用的,那有什么区别吗,因为 Linux 内核社区开发维护的人员遍及全球,要求有以下特性

• 速度

• 简单的设计

• 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)

• 完全分布式

• 有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

我们介绍下命令

1)克隆现有的仓库

git clone <仓库地址> #例如 git clone http://127.0.0.1/yazhehuang/gitlearn.git

2)进入代码库,目录或者操作文件来继续工作

cd <repo-name> #例如 cd gitlearn

3)在目录中创建一个 README.md 文件

vi README.md

4)添加文件到索引区

git add README.md #一次可以`add`多个不同的文件,以空格分隔: git add a.txt b.txt c.txt

5)创建提交

在此之前,请务必确认有什么已修改或新建的文件还没有 git add 过, 否则提交的时候不会记录这些尚未暂存的变化。 这些已修改但未暂存的文件只会保留在本地磁盘。

所以,每次准备提交前,先用 git status 看下,你所需要的文件是不是都已暂存起来了, 然后再运行提交命令 git commit:

git commit -s -m "Initial commit"

6)映射绑定远程仓库信息

git remote add url http://127.0.0.1/yazhehuang/gitlearn.git

7)把本地仓库信息 推送到远程仓库

git push

8)把远程仓库拉取回本地工作区

git pull

9)把远程仓库拉取回本地仓库

git fetch

10)合并

git merge origin/main

11)查看分支

git branch

12)切换一个本地已经存在的分支

git checkout main

13)查看本地仓库对应的远程仓库地址

git remote -v

14)将本地分支和远程某分支建立对应(如远程的 master 分支)

git branch -u origin/master

15)和远程分支同步。若和远程分支偏离,则执行合并以完成更新

git pull

16)和远程分支同步。若和远程分支偏离,将本地差异提交变基到远程分支,以完成更新

git pull --rebase

17)创建分支

git checkout -b <branch>

18)查看当前代码库的文件修改状态列表

git status

19)分支管理

git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git branch 查看本地所有分支

20)从git中删除指定文件

git rm 文件名(包括路径) #例如 git rm PROJECTS.md

21)查看用户配置信息

git config --list

22)显示 Mac 上的隐藏文件【可以看到 .git 】

#打开命令行 Terminal 终端; defaults write com.apple.finder AppleShowAllFiles TRUE # 默认显示苹果所有文件 true, 这一步相当于确定 killall Finder

23)恢复隐藏 Mac 上的隐藏文件

#打开命令行 Terminal 终端; defaults write com.apple.finder AppleShowAllFiles FALSE # 这样就恢复成初始状态了 killall Finder

24)检查当前文件状态

可以用 git status 命令查看哪些文件处于什么状态。 如果在克隆仓库后立即使用此命令,会看到类似这样的 输出:

$ git status On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean

第一列文字表示版本库与暂存区之间的比较状态,第二列文字表示暂存区与工作区之间的状态

$ git status -s M README MM Rakefile A lib/git.rb M lib/demo.rb ?? LICENSE.txt

' ' (空格)表示文件未发生更改

M 表示文件发生改动。

A 表示新增文件。

D 表示删除文件。

R 表示重命名。

C 表示复制。

U 表示更新但未合并。

? 表示未跟踪文件。

! 表示忽略文件。

未跟踪和忽略文件会显示相同的两列,如 ??。

参考:

https://osteele.com/

《git 权威指南》

欢迎订阅 点赞 收藏 分享

,