锦方的个人网页 · 如果有一天你突然想起了我


Git Manual

目录

安装Git

sudo apt-get install git

版本库

创建版本库

mkdir tgit #创建一个tgit的文件夹
cd tgit 
git init #git init命令把这个目录变成Git可以管理的仓库

配置

git config --global user.name "Your Name"
git config --global user.email "[email protected]"

git config命令的--global参数表示你这台机器上所有的Git仓库都会使用这个配置

把文件添加到版本库

1,在tgit目录下新建一个文件, 2,使用git add把文件添加到仓库. 3,用命令git commit告诉Git,把文件提交到仓库.

git add text.txt#没有任何反馈就是成功了
#在commit之前git add <file>,可反复多次使用,添加多个文件
git commit -m "text"#-m后面输入的是本次提交的说明,可以输入任意内容,

时光机

git status命令可以查看当前仓库状态, 如果没有改动 git status反馈"无文件要提交,干净的工作区" 如果我现在修改了刚才的text.txt文件,再使用git status命令会显示我们修改了text.txt如果要查找修改的内容,可以使用git diff命令.

提交修改和提交新文件是一样的两步:

第一步 git add * 第二步 git commit -m

在执行第二步git commit之前,我们再运行git status会反馈将要修改包括text.txt

存档功能

1,git log命令显示从最近到最远的提交日志 2,在Git中,用HEAD表示当前版本上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100.

退回到上个版本:

git reset --hard HEAD^

cat text.txt #查看文件的内容
后悔命令

Git提供了一个命令git reflog用来记录你的每一次命令:

git reflog

回到刚才回去之前的存档

git reset --hard xxxxx#xxx是版本号,写前几位就可以

暂存区的概念

修改

每次修改,如果不add到暂存区,不会那就加入到commit中

撤销修改

git checkout -- text.txt

删除文件

rm test.txt #删掉了工作区的文件,此时版本库还有文件
#如果现在是删错了可以使用git checkout恢复工作去区文件.
#如果要删除版本库就要继续git status
#用命令git rm删掉,并且git commit
#如果版本库被删除后想恢复文件可以使用---来从暂缓区恢复
git reset --hard xxxxx#xxx是版本号,写前几位就可以

github

第1步:创建SSH Key.

ssh-keygen -t rsa -C "[email protected]"

在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面添加公钥的内容.

第3步:将我的密钥添加到已知密钥列表中

ssh-add ~/.ssh/id_rsa

第4步:关联一个远程库

git remote add origin [email protected]:xyt571/tgit.git
git push -u origin master #第一次推送master分支的所有内容
git push origin master#推送最新修改

从远程克隆一个库

git clone [email protected]:这里是用户名/项目名.git

Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快.

分支管理

创建分支和合并分支

git branch dev #创建
git checkout dev #切换

git checkout -b dev#git checkout命令加上-b参数表示创建并切换

git branch #查看当前分支

git checkout master #切换回master分支

git merge dev #合并到master分支

git branch -d dev #删除dev分支

#如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除

分支管理策略

使用--no-ff参数合并:

 git merge --no-ff -m "merge with no-ff" dev
 #因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去。

合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

储藏工作区

git stash

Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,用git status查看工作区,就是干净的

git stash list#查看储藏起来的工作去区.

git stash apply恢复,但是恢复后,藏匿内容并不删除,需要你用git stash drop来删除 另一种方式是用git stash pop,恢复的同时把stash内容也删了

多人协作

git remote#查看远程库的信息
git remote -v#显示更详细的信息
git push origin master#把该分支上的所有本地提交推送到远程库。
#如果git pull提示“无跟踪信息”,则说明本地分支和远程分支的链接关系没有创建,用命令
git branch --set-upstream branch-name origin/branch-name。

创建远程origin的dev分支到本地

git checkout -b dev origin/dev

多人协作一般步骤:

1,试图用git push origin branch-name推送自己的修改 2,如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并 3,如果合并有冲突,则解决冲突,并在本地提交. 4,再推送git push origin branch-name

master分支是主分支,因此要时刻与远程同步.

标签管理

创建标签

git branch
git checkout master
git tag <name>#新建标签
#默认标签是打在最新提交的commit上
git tag v0.9 1111#1111是commit的id
#标签不是按时间顺序列出,而是按字母排序的。可以用:
git show <tagname>
#创建带有说明的标签,用-a指定标签名,-m指定说明文字:
git tag -a v0.1 -m "version 0.1 released" 3628164

还可以通过-s用私钥签名一个标签:

签名采用PGP签名,因此,必须首先安装gpg(GnuPG),如果没有找到gpg,或者没有gpg密钥对,就会报错.
git tag -s v0.2 -m "signed version 0.2 released" fec145a

git show <tagname>#可以看到PGP签名信息
命令git tag可以查看所有标签。

操作标签

删除标签


git tag -d v0.1 #删除未推送到远程的标签

git push origin v1.0 #推送某个标签到远程

git push origin --tags #一次性推送全部尚未推送到远程的本地标签

#如果标签已经推送到远程,要删除远程标签就麻烦一点.

git tag -d v0.9 #删除未推送到远程的标签

git push origin :refs/tags/v0.9 #删除一个远程标签

Git官网

系列:Manual

该系列自动来自分类: Manual

  1. Debian创建新用户和设置防火墙
  2. mac在Debian安装wireguard和使用
  3. btc钱包
  4. 一个设备配置多个git key
  5. 手动删除mac软件
  6. Homebrew使用命令
  7. 买了个商用的vpn
  8. kindle常用网站
  9. 检测帐号是否已被黑客窃取
  10. 水晶头 RJ45
  11. 电烙铁
  12. 怎么清洁电线
  13. vmess配置
  14. 给灯具安装运动传感器
  15. 计算断路器负载
  16. 太阳能电池板粗解
  17. 常用家庭线路解析
  18. 怎么检查短路
  19. Git Manual (当前)
  20. 电气施工图说明
  21. Markdown Manual

下一篇推荐

系列继续阅读

电气施工图说明