赞
踩
git自报家门
git config --global user.name “Your name”
git config --global user.email “Your email@”
git 命令除了git init 都要在当前repository使用
1.创建repository
mkdir gitlearn cd gitlearn git init pwd:查看根目录 ls -ah:查看隐藏子目录
2.添加单个或多个文件到repository
(1).vi readme.txt git add readme.txt git commit -m “add a readme file”
(2) git file1.txt git file2.txt git file3.txt commit -m “add 3 files”
可以添一次加多个文件后,使用commit 告知git, 文件已提交至repository
3.查看修改
git status 查看工作区的状态 git diff 查看文件中的具体修改
4.修改后更新至repository
git add readme.txt git commit -m “update readme file”
5.查看历史提交记录
git log git log --pretty=oneline
6.回退
git reset --hard HEAD (HEAD是当前最新版本,上一个版本是HEAD,上上个版本是HEAD^,依次类推)
注意回退后之前的版本会消失,想回到消失的版本,需要指定的版本id来回退
git reset --hard id
如果关机之后指令消失,想要回退到消失的版本,那么需要使用git reflog 查看commit的信息来找到版本的id
7.工作区与暂存区
在服务器中的目录都可以看成工作区,除了.git,.git是Git版本库
在.git中存在stage(暂存区),使用git add 就是把文件修改添加到暂存区,使用git commit提交更改,就是把暂存区的所有内容提交到当前分支。
对于未添加到暂存区和分支的文件,使用git status 查看状态,会显
示未追踪文件
8.比较同一文件工作区和版本库里最新版本的区别
git diff HEAD – readme.txt
9.撤销工作区和暂存区的修改
(1).对工作区进行撤销 git restore – readme.txt 或者 git checkout – reamde.txt
(2).对暂存区进行撤销 git reset HEAD readme.txt 从暂存区回到工作区的修改状态,再使用git restore --readme.txt 对工作区进行撤销修改
10.删除文件
将工作区的文件删除后,版本库中的文件和工作区不对应,这个时候有两个选择(1)删除版本库中的此文件:git rm readme.txt git commit -m “remove readme.txt”
(2)将版本库中此文件替换到工作区去,这种方式也可以称为一键还原
git checkout – readme.txt
11.服务器创建SSH Key
ssh-keygen -t rsa -C “github.com”
一路回车,然后在主目录下找到.ssh目录(ll -ah显示隐藏目录),在此目录下找到id_rsa和id_rsa.pub,将公有私钥复制到github上的SSH Keys即可
12.将本地服务器git repository push to github
(1).git remote add origin git@github.com:你github用户名/本地git仓库(目录)的名字.git
(2).git branch -M master 匹配分支
(3).git push -u origin master
只要本地提交了就可以通过 git push origin master 远程推送github进行更新
13.从远程库克隆
git clone git@github.com:你的github名字/gitskills.git
14.删除远程库
使用git remote -v 查看远程库信息,再根据名字使用git remote rm 名字进行删除
15.创建分支并切换到新分支
git branch dev git checkout dev
合起来写法 git checkout -b dev 或者 git switch -c dev (新版写法)
修改readme.txt文件add,commit后,再切换为master分支,查看readme.txt 发现新添加的内容不见了,因为之前提交是在dev分支上,而master分支的提交点并没有变。
16.合并dev与master分支
使用git merge dev 成功合并,这条指令用于将指定分支dev合并到当前分支master中。删除分支后,会丢失分支信息。
17.删除分支
git branch -d dev
18.当不同分支修改readme.txt,并commit后分支merge发生冲突时
使用git log --graph --pretty=oneline --abbrev-commit 或者cat readme.txt查看冲突的位置,然后对当前分支中的readme.txt进行修改即可,注意若此时要合并只能切换到feature1,因为master已经是新时间线了,不能和旧时间线合并。使用git merge --no-ff -m “dev merge” dev,及时删除分支后,查看log仍然保留曾经的分支历史信息,使得分支信息不丢失。
19.将当前分支(dev)正在开发的文件提交到暂存区缓存起来,修改其他分支的临时bug
git stash,切换到其他分支修改bug,git switch master git switch -c issue-101
git switch master git merge --no-ff -m “modify issue-101” issue-101,回到正在开发的分支(dev),将缓存区的开发文件取出 git stash pop ,若master分支是dev分支的子分支,也就是说master上的bug在dev上也存在,为了不重复修改dev中master的bug,将issue-101解决完bug后提交的id记录下来(issue-101_id),在dev中使用git cherry-pick issue-101_id即可将master分支上的修改复制到dev分支中
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。