Git使用

Git:分布式版本控制工具,每个电脑都有完整的版本记录,在没联网的情况下也能够进行版本的回退 提交 创建分支等所有版本控制操作
SVN:集中式版本控制工具,完整的版本记录只存在于中央仓库中,没联网的情况下不能够正常使用

git 仓库的常见状态

git 仓库的常见状态

1.untracked:未被添加到git仓库管理

2.not staged:未被添加到暂缓区

3.to be committed:将要被提交到git仓库

常用操作

1.创建仓库(该操作会创建.git的文件,git能够管理该文件所在的目录以及所有的子目录下的文件)
git init

2.添加文件使用到git管理(或者把已经添加到git管理的文件,但是有修改的文件重新添加到暂缓区)
git add name添加对应name的文件
git add .添加所有文件

3.把文件修改信息提交到git仓库
git commit -m '这里是此次提交的注释'

git status:查看git库的状态
git diff name:查看文件在上次提交之后所做的修改,在暂缓区的文件无法查看
git reset HEAD name:把文件从暂缓区移出到not staged状态
git log:查看提交日志
git reflog:查看提交和回退记录
git reset --hard 版本号:会退到指定版本
git checkout --name:(用于清除所做的修改)1.未被提交到暂缓区,则回到和版本库中的一样 2.添加到了暂缓区,则回到和暂缓区中的一样(可以先通过git reset HEAD先移出暂缓区,再清除修改)
git rm name:从版本库中删除管理文件,把删除信息提到暂缓区,之后需要commit(错删了文件可以通过,git checkout --name来恢复)

远程仓库管理

git remote add origin 地址:添加一个远程库(origin为给远程库取的一个名字,以后推送需要用到)
git remote remove name:移除远程库
git push origin master:把本地git仓库推送到远程(origin:需要推送到的仓库,有时候可能有几个远程仓库,需要选择 master:需要推送的是哪个分支)
git clone 地址:把远程仓库clone到本地(只会clonemaster分支)

tag操作

git tag:查看本地所有的tag
git tag -a 'tag号' -m '标签注释': 在本地添加一个tag并添加注释
git push --tags:把本地的tag全部推送到远程库

分支操作

git branch:查看分支
git branch name:创建分支
git checkout name:切换分支
git checkout -b name:创建+切换分支
git merge name:把name分支合并到当前分支中
git branch -d name:删除一个分支
git branch -D name:删除一个还没被合并的分支

git stash:由于未被提交的工作在切换分支的时候会被带到新的分支,所有需要把尚未完成的工作stash起来
git stash apply:恢复工作现场,并且不删除stash
git stash drop:删除stash
git stash pop:恢复并删除stash

高级远程操作

1.拉取远程仓库固定分支
git clone 地址:clone远程库的master分支到本地
git branch -r:列出远程所有分支
git checkout -b 本地名 origin/远程名:clone远程库的分支到本地

2.拉取远程更新
git pull origin 分支名

3.取得tag并创建分支
git checkout -b 分支名 tag名

4.解决push远程库Rejected

git pull:直接把远程库更新合并到本地
若有冲突,解决后:git add .  git commit
git push
git fetch origin 分支名:拉取远程分支到本地
git merge origin/master -m '合并的注释':把远程库的分支合并到当前代码
若有冲突,解决后:git add .  git commit
git push
git fetch origin 分支名
git rebase origin/master
若有冲突,解决后:git add .  git rebase --continue
git push

总结:三种方法都能够解决问题,前两种在查看项目分支结构的时候会有合并的结构,第三种则没有(推荐使用第三种)

你可能感兴趣的:(Git使用)