git如何编辑远程代码(常用Git命令看这一篇就够了)
Git 有多种使用方式,可以使用原生的命令行模式,也可以使用 GUI 模式,这些 GUI 软件也能提供多种功能。而大多数的 GUI 软件只实现了 git 所有功能的一个子集以降低操作难度, 如果学会了在命令行下如何操作,那么在操作 GUI 软件时应该也不会遇到什么困难,但是,反之则不成立。 接下来我们一起了解下Git命令及原理。
如图所示 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 权威指南》
欢迎订阅 点赞 收藏 分享
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com