1. git 指令集
# git 初期配置
# 用户信息配置
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
# 文本编辑器配置
$ git config --global core.editor emacs
# 差异性对比工具配置
$ git config --global merge.tool vimdiff
# 查看配置列表
$ git config --list
# 查看单个配置环境变量
$ git config user.name
# 获取某个工具如何使用
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
# 取得项目的 Git 仓库
# 1) 在工作目录中初始化新仓库
$ git init
$ git add *.c
$ git add README
$ git commit -m 'initial project version'
# 2) 从现有仓库克隆
$ git clone git@gitee.com:oschina/git-osc.git
$ git clone git@gitee.com:oschina/git-osc.git mygrit
# Git 支持许多数据传输协议。之前的例子使用的是 git:// 协议,不过你也可以用 http(s):// 或者 user@server:/path.git 表示的 SSH 传输协议。
# 私有的项目有私有的解决方法SSH
#通过HTTPS协议克隆
git clone https://gitee.com/zxzllyj/sample-project.git
#通过SSH协议克隆
git clone git@gitee.com:zxzllyj/sample-project.git
# 同步(拉取)
git pull origin master
# 推送
git push origin master
git push origin master -f
# 暂存
git stash
git stash pop
git stash list
# 撤销
git reset --hard
git reset 1d7f5d89346
# Git Commit message 编写指南
git commit -m "hello world"
<type>(<scope>): <subject>// 空一行<body>// 空一行<footer>
# 查看历史提交记录
git log --pretty=oneline
git log
命令,查看每次提交更加详细的信息
# 版本回退
git reset --hard 版本的hash码
还记得版本的hash码吗?它是用来唯一的标识版本的,你可以用git log来查看每个版本的hash码,你不需要写全,一般写前5位就可以了,git会自动帮你补全,例如:
git reset --hard b41b
在新的系统上,我们一般都需要先配置下自己的 Git 工作环境。配置工作只需一次,以后升级时还会沿用现在的配置。当然,如果需要,你随时可以用相同的命令修改已有的配置。
Git 提供了一个叫做 git config
的工具(译注:实际是 git-config 命令,只不过可以通过 git 加一个名字来呼叫此命令。),专门用来配置或读取相应的工作环境变量。而正是由这些环境变量,决定了 Git 在各个环节的具体工作方式和行为。这些变量可以存放在以下三个不同的地方:
- /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。
- ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。
- 当前仓库的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前仓库有效。每一个级别的配置都会覆盖上层的相同配置,所以 .git/config 里的配置会覆盖 /etc/gitconfig 中的同名变量。
在 Windows 系统上,Git 会找寻用户主目录下的 .gitconfig 文件。主目录即 $HOME 变量指定的目录,一般都是 C:Documents and Settings$USER
。此外,Git 还会尝试找寻 /etc/gitconfig 文件,只不过看当初 Git 装在什么目录,就以此作为根目录来定位。
在macbook pro上Git 是不用去寻找gitconfig的文件夹目录的
用户信息配置
第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内容一起被永久纳入历史记录:
每个安装了git的计算机可以看作是一个项目的开发者,首先,你需要配置你的名字和邮箱,以便让你的团队知道你是谁。
打开控制台,运行以下命令:
git config --global user.name "你的名字"
git config --global user.name "你的邮箱"
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
如果用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,以后你所有的仓库都会默认使用这里配置的用户信息。如果要在某个特定的仓库中使用其他名字或者电邮,只要去掉 --global 选项重新配置即可,新的设定保存在当前仓库的 .git/config 文件里。
文本编辑器配置
接下来要设置的是默认使用的文本编辑器。Git 需要你输入一些额外消息的时候,会自动调用一个外部文本编辑器给你用。默认会使用操作系统指定的默认编辑器,一般可能会是 Vi 或者 Vim。如果你有其他偏好,比如 Emacs 的话,可以重新设置:
$ git config --global core.editor emacs
差异分析工具
还有一个比较常用的是,在解决合并冲突时使用哪种差异分析工具。比如要改用 vimdiff 的话:
$ git config --global merge.tool vimdiff
Git 可以理解 kdiff3,tkdiff,meld,xxdiff,emerge,vimdiff,gvimdiff,ecmerge,和 opendiff 等合并工具的输出信息。当然,你也可以指定使用自己开发的工具。
查看配置信息
要检查已有的配置信息,可以使用 git config --list 命令:
$ git config --list
user.name=Scott Chacon user.email=schacon@gmail.com color.status=auto color.branch=auto color.interactive=auto color.diff=auto ...
有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),不过最终 Git 实际采用的是最后一个。
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:
$ git config user.name
Scott Chacon
取得项目的 Git 仓库 - 码云 Gitee.comgitee.com每次提交代码到码云的时候,都需要输入账户密码,真的很不方便,好在码云给我们提供了解决方案,只需要创建秘钥对,在码云上添加公钥就可以了,把私钥保存在本地即可,以下就是添加公钥的步骤。生成秘钥对
仓库的 SSH Key 和账户 SSH Key 的区别?
和仓库"只读"权限的 SSH Key 相比,账户的 SSH Key 同时具备推送/拉取
的权限,对用户创建/参与的仓库均能使用,使用起来更加方便。
仓库的 sshkey 只针对仓库,且我们仅对仓库提供了部署公钥,即仓库下的公钥仅能拉取仓库
,这通常用于生产服务器拉取仓库的代码。
而用户的 key 则是针对用户的,用户添加了 key 就对用户名下的仓库和用户参加了的仓库具有权限,一般而言,用户的key具有推送和拉取的权限,而仓库的 key 则只具有拉取权限。
- 打开git bash
- 输入ssh-keygen -t rsa -C "你的邮箱地址" 三次回车之后就可以生成密钥对
- 输入cat ~/.ssh/id_rsa.pub 查看你的 public key(公钥),结果如下:
clone/克隆 码云 private/私有 git项目.md
生成ssk公钥关键:ssh-keygen -t rsa -C "xxxxx@com"
打开终端黑窗口,输入ssh-keygen -t rsa -C "xxxxx@com"
,其中,xxxxx@com替换成你在github或者gitee的邮箱。
需要输入密码则输入密码。
需要覆盖则覆盖。
ssh-keygen -t rsa -C "xxxxx@com"
git clone https://gitee.com/mingleadgene_zhoujianaaa123/PHD_Thesis_20200214.git myPHDs
仓库基本管理
初始化一个Git仓库(以/home/gitee/test
文件夹为例)
$ cd /home/gitee/test #进入git文件夹 $ git init #初始化一个Git仓库
将文件添加到Git的暂存区
$ git add "readme.txt"
注:使用git add -A
或git add .
可以提交当前仓库的所有改动。
查看仓库当前文件提交状态(A:提交成功;AM:文件在添加到缓存之后又有改动)
$ git status -s
从Git的暂存区提交版本到仓库,参数-m
后为当次提交的备注信息
$ git commit -m "1.0.0"
将本地的Git仓库信息推送上传到服务器
$ git push https://gitee.com/***/test.git
查看git提交的日志
$ git log
上传本地项目文件夹子到远程仓库
在所要上传的文件夹目录打开bash:
输入一下指令:
git init
git remote add origin 将要上传的远程仓库的地址.git在下图里面找
(刚才说到,remote可以看做是一个人的电脑,假设有十个人合作,那么就有10个remote对象。为了方便大家同步,我们创建一个叫做origin的remote,大家都和这个origin同步,那么大家就可以达成一致了。
很多人的Git操作的第一句话是
git clone xxx
)
其实,一开始的 git clone xxx 命令,可以看做是一个复合命令,它做了两件事:第一,下载文件,第二,执行 git remote add origin xxx
高级内容
git pull origin master
将码云上的仓库pull到本地文件夹
这一步是必须的,否则不给上传权限
将要上传的文件,添加到刚刚创建的文件夹
git add . (. 表示所有的)或者 git add + 文件名 // 将文件保存到缓存区
git commit -m '新添加的文件内容描述' //添加文件描述
git push origin master ,将本地仓库推送到远程仓库
运行结果如下
VScode 链接码云进行修改,同步和更新
VSCode工具使用git链接码云 - RichardTnag - 博客园www.cnblogs.com远程仓库管理
修改仓库名
一般来讲,默认情况下,在执行clone或者其他操作时,仓库名都是 origin 如果说我们想给他改改名字,比如我不喜欢origin这个名字,想改为 oschina 那么就要在仓库目录下执行命令:
git remote rename origin oschina
这样 你的远程仓库名字就改成了oschina,同样,以后推送时执行的命令就不再是 git push origin master 而是 git push oschina master 拉取也是一样的
添加一个仓库
在不执行克隆操作时,如果想将一个远程仓库添加到本地的仓库中,可以执行
git remote add origin 仓库地址
注意: 1.origin是你的仓库的别名 可以随便改,但请务必不要与已有的仓库别名冲突 2. 仓库地址一般来讲支持 http/https/ssh/git协议,其他协议地址请勿添加
查看当前仓库对应的远程仓库地址
git remote -v
这条命令能显示你当前仓库中已经添加了的仓库名和对应的仓库地址,通常来讲,会有两条一模一样的记录,分别是fetch和push,其中fetch是用来从远程同步 push是用来推送到远程
修改仓库对应的远程仓库地址
git remote set-url origin 仓库地址
Git以及它的可视化工具SourceTree
不会代码的人,推荐可视化工具sourceTree
更多更新: