您的位置:首页 > 其它

git命令快速入门

2020-07-20 04:22 337 查看

安装

win  https://git-scm.com/downloads

linux sudo

 

创建版本库

装c盘好多问题,vscode5k+的修改

直接

然后初始化

git init

删库直接删除库文件夹下的 .git文件

也可以cd到某个目录建库

 

版本控制

xx文件放到 gitrepo(自建)下

git add file1 file2

git add file3

git commit -m“注释说明”

 

git log  查看每次commit信息,一次提交就是一个版本

git log --pretty=oneline

 

回退一个版本

git reset --hard HEAD^

回到某个版本

git reset --hard  版本号前几位

 

回去后git log新的版本就藏起来起来了

可用 git reflog查版本号(commit id)

版本reset是靠指针实现的,速度快

 

到目前为止

工作区内容来自 gitrepo文件夹内容的变化,工作区的内容全部提交到分支上后

会变空,(文件不会丢失),新的更改会写进工作区

。git是版本库

git add 把新文件或修改送到暂存区stage

git rm  把删除文件操作送到stage

git commit 吧stage中内容送到当前分支,(现在的master分支是主分支,创建库会自动创建)

 

git status 查看状态

$ git status
On branch master
Changes not staged for commit:

工作区的修改内容

Untracked files:

工作区的新文件

Changes to be committed:

stage中内容

如果都提交了,会显示 nothing to commit, working tree clean

用git diff HEAD --filename    查看工作区文件和版本库里面最新版本的区别

 

git checkout -- filename

撤销工作区中的修改,stage不变,

修改工作区,但不add,commit的还是旧的stage中内容。

 

分支管理

 

修bug  新功能 协作开发等需要分支

查看分支:git branch 当前分支前面会标一个*号

git branch  +参数    显示分支信息 (涉及后一节知识,方后面)

创建分支:git branch <name>   原始分支叫 master

如 git branch issue01 创建一个用来修bug的分支

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

常用 git merge --no-ff -m "描述"  <name>

带--no-ff merge时生成一个新的commit,合并后保留被合并的分支合并前状态点

删除分支:git branch -d <name>   -D是强制删除,当分支没合并时只能强制删除

查看分支合并图 git log --graph

git status也能看分支

 

git stash 保存当前工作区, 当不想提交又想切换分支可以

git stash list 查看

git stash apply stash@{数字}恢复到指定stash

git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop

git stash pop,恢复的同时把stash内容也删

git cherry-pick <commitID> 另一个分支的commit修改适用到当前分支

比如bug没修复就分支了,一个分支的修bug后commit,回到另个一个分支可以用这个命令

 

标签tag

git tag -a <name> -m "说明" <commitID>

-m 说明 可省 直接git tag tagname,缺省commitID是最近的一次commit即 head

git tag查看所有标签

git show <tagname>查看标签信息

git tag -d <tagname> 删标签

推送某个标签到远程,使用命令git push origin <tagname>

推送全部尚未推送到远程的本地标签:

git push origin --tags

删远程标签 先删除本地,然后

git push origin :refs/tags/tagname

 

 

 

远程库与github

查看远程库的信息,用git remote -v

克隆github库到本地

git clone git@github.com:账户名/仓库名.git

git clone https://github.com/账户名/仓库名.git

第一种ssh方式需要把自己生成的ssh公钥(cmd 或者bash 下 ssh-keygen -t rsa 提示保存位置下的idras.pub )填入github setting 里面ssh 的new ssh

以上克隆只能看到克隆的master主分支

git checkout -b dev origin/dev

git checkout -b 分支名 远程库名/分支名    克隆后创建其它分支到本地  

 

本地库送到github

github创建一个与本地库同名的仓库(我的叫 gitrepo)

然后

git remote add origin git@github.com:githubusername/gitrepo.git

远程库的名字就是origin,git的默认叫法,githubusername你的github账户名

(删除 git remote rm 远程仓库别名)

git push -u origin master (git push -u 远程库名 本地分支名)

本地库内容推动到github,第一次可以加 -u参数代表 把分支版本全推到github与之关联,之后需要省去

 

git branch  +参数    显示分支信息

-a 本地及远端信息

-v与-verbose是一个效果

-vv会显示上游分支的名字

推荐 -avv 即 git branch -avv

网图,上部本地,下部远程,origin/xxbranch: ahead 2,behind1

ahead 1代表本地1个commit还没推送到远程库,behind1 代表远程服务器的2次提交还未合并到本地

当出现behind 时需要将服务器修改合并到本地,否则你的commit会与远程冲突

你需要先绑定本地远程分支,

git branch --set-upstream-to=origin/<branch> <本地branch>

然后 git pull  如有冲突需要手动解决然后git push origin <branch-name>

push前可使用 命令git rebase

rebase操作可以把本地未push的分叉提交历史整理成直线,在查看历史提交的变化时更容易

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: