分享
 
 
 

git学习小结 (笔记)

王朝学院·作者佚名  2016-05-26
窄屏简体版  字體: |||超大  

git学习小结 (笔记)Modesty helps one to go forward, whereas conceit makes one lag behind.

"虚心使人进步,骄傲使人落后"

注:本文参考 廖雪峰的Git教程 ,非常感谢廖大神的无私奉献,本文仅作为笔者的学习笔记,如果需要完整的学习git,请猛戳前面的链接^_^一、git是什么? 1、git是什么? "git是世界上最先进的分布式版本控制系统(没有之一)" --廖雪峰 2、为什么要学习git? git是一种高效且方便的版本控制工具,在实际开发中可以大大提高工作效率哦 ^_^ ~~二、安装git

1 sudo apt-get install git

三、创建版本库

1 [mkdir <库名>]2 [cd <库名>]3 git init #将当前目录初始化为一个git仓库

四、版本控制 1、将文件添加到版本库

1 git add <filename> #把文件添加到暂存区,注意该文件必须放在仓库目录(或子目录)下2 git commit -m "提交说明" #把暂存区的内容提交到当前分支

2、查看工作区的状态

1 git status #查看工作区的修改记录2 git diff <filename> #如果git status提示有修改记录,那么这条命令可以查看修改内容

3、版本切换

1 #HEAD指向当前版本2 git reset --hard commit_id #回退到commit_id指定的版本3 git log [--PRetty=oneline] #查看从最近到最远的提交日志,加上"[]"内的参数可以以"版本号 提交日志"的格式查看4 git reflog #查看命令历史

4、撤消修改

1 git checkout -- <file> #撤消工作区的修改2 git reset HEAD <file> #撤消暂存区的修改,返回工作区修改的状态

5、删除文件

1 git checkout -- <file> #用版本库里的版本替换工作区的版本2 git rm <file> #删除暂存区里的文件

五、远程仓库 1、创建SSH Key:

1 #进入用户主目录下的.ssh目录(没有则自己创建):2 ssh-keygen -t rsa -C "email@example.com" #创建SSH Key,注意填写正确的邮箱地址3 #登陆GitHub,打开"Account settings","SSH Keys"页面,然后"Add SSH Key",填写"Title",将id_rsa.pub的内容拷贝到Key文本框,"Add Key"

2、添加远程库

1 #登陆GitHub,"Create a new repo"创建一个新仓库2 git remote add origin git@server-name:path/repo-name.git #将本地仓库关联到远程库3 git push [-u] origin master #推送最新修改,第一次推送时要加上-u参数

3、从远程库克隆

1 git clone git@server-name.com:path/name.git #克隆一个远程库到当前目录

六、分支管理 1、创建与合并分支 分支的作用是什么:当开发项目中的某一个任务的时候,可以使用新的分支完成,之后合并到master分支再删除新分支,这样做可以比较安全的管理项目,因为在某分支上的操作只会修改该分支包含的内容,比较安全

1 git branch <name> #创建分支2 git checkout <name> #切换分支3 git checkout -b <name> #创建并切换4 git merge <name> #合并分支到当前分支5 git branch -d <name> #删除分支6 git log --graph #查看分支合并图

2、分支管理策略 Fast forward模式:该模式是分支合并时的默认模式,在这种模式下,删除分支后,会丢失分支信息,在实际开发中不推荐使用该模式。

1 git merge --no-ff -m "XXX" b-name # "--no-ff" 参数表示禁用Fast forward模式

分支管理的基本原则: ①master分支仅仅用来发布新的版本; ②团队成员都在dev分支上工作,每个人都在dev分支的一个子分支上工作;

3、bug分支

1 git stash #保存当前的"工作现场"2 git stash apply #恢复现场但不删除stash的内容3 git stash drop #删除stash的内容4 git stash pop #恢复现场并删除stash的内容5 git stash list #查看stash的内容

bug修复策略:创建一个新分支修复bug,然后合并,删除 步骤:保存当前"工作现场"-->创建并切换到bug分支-->修复bug-->切换到bug分支的上层分支-->合并并删除bug分支-->切换回原来的工作分支-->恢复"工作现场"。 4、feature分支 新增功能的策略:创建新分支,然后合并删除

1 git branch -D <name> #强行删除一个没有被合并的分支

5、多人协作

1 git remote -v #查看远程库信息2 git pull #抓取最新的提交到本地仓库3 git push origin branch-name #将本地分支推送到远程仓库4 git checkout -b branch-name origin/branch-name #在本地创建和远程分支对应的分支5 git branch --set-upstream branch-name origin/branch-name #建立本地分支和远程分支的关联

多人协作的工作模式: ①试图用 git push origin branch-name推送自己的修改; ②如果推送失败,则因为远程分支比本地分支更新,需要先用git pull抓取到本地然后试图合并 ③如果合并有冲突,则先解决冲突,并在本地提交; ④没有冲突或者解决掉冲突后,用 git push origin branch-name推送七、标签管理 1、创建标签

1 git tag #查看所有标签2 git show <tagname> #查看标签的详细信息3 git tag <tagname> [commit id] #新建一个标签,默认为HEAD,也可以指定一个commit id4 git tag -a <tagname> -m "xxx" #指定标签信息为 "xxx"5 git tag -s <tagname> -m "xxx" #用PGP签名标签

2、操作标签

1 git tag -d <tagname> #删除一个本地标签2 git push origin --tags #推送全部未推送过的本地标签3 git push origin <tagname> #推送一个本地标签4 git push origin :refs/tags/<tagname> #删除一个远程标签

八、使用GitHub 在GitHub上,可以任意Fork开源仓库,并且自己拥有Fork后的仓库的读写权限,可以推送pull request给官方仓库来贡献代码九、自定义Git 1、忽略特殊文件 ①忽略某些文件时,需要编写.gitignore,并在文件中加上要忽略的文件名; ②.gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理; 2、配置别名 ①git config [--global] alias.new-name old-name #将 new-name 作为 old-name 的别名,加上--global表示对当前用户修改,不加则仅仅对当前仓库修改; ②除了使用 config参数外,还可以通过修改配置文件来配置别名:每个仓库的配置文件放在.git/config中,当前用户的配置文件则放在Home目录下的.gitconfig中; 3、搭建Git服务器 ①安装git:sudo apt-get install git ②创建git用户:sudo adduser git ③创建证书登录:收集所有需要登陆的用户公钥,即id_rsa.pub,把所有公钥导入到/home/git/.ssh/authorized_keys文件中,一行一个; ④初始化Git仓库:先选定一个目录作为Git仓库,假设是/srv/sample.git,在/srv目录下输入:sudo git init --bare sample.git,并修改仓库的所有者为git:sudo chown -R git:git sample.git ⑤禁用shell登录:将文件/etc/passwd中类似这样的一行:git:x:1001:1001:...:/home/git:/bin/bash修改为git:x:1001:1001:.../home/git:/usr/bin/git-shell ⑥克隆远程仓库:git clone git@server:/srv/sample.git总结:git包含了很多的参数和用法,但是经常用到的不多,以后多加练习应该就可以熟练使用了

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有