git经常使用操做

工做中git经常使用操做记录,本身用的也不是特别熟练,但愿你们多多指教,之后会继续完善。git

1. 基础使用
# git clone url <asName> 从现有的repository克隆到本地,最后的asName是别名,可选项缓存

#新建本地仓库 (安装git后)在要建立git仓库repository的地方右键 git bash here
$git init repository
cd repositoryName 命令行进入git仓库bash

# git status 查看当前git仓库的情况,能知道是否有更新须要暂存add,是否有暂存须要commit 或 reset, 以及commit to push
# git add /rm. add 的做用不少,能够track新文件, 添加修改到stage, rm filename : 移除文件app

git add 的使用有不一样方式,
# git add <filename> -- 单独一个文件名
# git add <dirname> -- 目录名url

# git add xx命令能够将xx文件添加到暂存区,若是有不少改动能够经过 git add -A .来一次添加全部改变的文件。注意 -A 选项后面还有一个句点。
# git add -A 表示添加全部内容
# git add . 表示添加新文件和编辑过的文件不包括删除的文件;
# git add -u 表示添加编辑或者删除的文件,不包括新添加的文件spa

# git commit -m "comment"命令行

# git push 推送到远程repositoryci

若是远程库有更新,则须要先更新后再提交
# git pull 拉取最新的内容rem

建议频繁使用
git status
git add
git commit
git pushit

 

追加提交

git commit --amend


2. 从已有项目建立git repository

#链接到远程仓库并为该仓库repository建立别名 , 别名为origin . 这个别名是自定义的,一般用origin ; 远程repository地址
git remote add origin 远程仓库地址

#建立一个 upStream (上传流),并将本地代码经过这个 upStream 推送到 别名为 origin 的仓库中的 master 分支上
git push -u origin master

远程分支已经有内容时:
push远程分支报错:refusing to merge unrelated histories
git pull origin master --allow-unrelated-histories

 

3. git 分支
git branch -a --列出全部分支 有 * 的是当前分支
git branch -v --全部分支最后提交信息
git branch newbranch --建立分支
git checkout branch --切换分支,须要先commit全部内容

git push --set-upstream origin newbranch  -- 向新分支提交,须要先设置upstream

git merge branchName --合并分支到当前分支,有冲突时不会提交,须要合并后commit

git branch -d branchName --删除分支
以上都是本地分支,建议频繁使用分支

 

删除远程分支

git push origin -delete branchname

 

tag
git tag   -- 查看tag lsit

git tag -a tagname -m 'comment'  -- 建立tag

git push origin tagname -- 推送到远程库

git tag -d tagnme  --删除tag

git push origin :refs/tags/tagname  -- 删除远程的tag


4. git撤销
a. 在工做区的改动,未add以前 --恢复工做区的内容
使用git checkout . 恢复所有内容( . ),固然也可使用git checkout <filename> 或git checkout <dirname>

b. 改动已经执行过add命令 --恢复暂存区的内容
git reset HEAD . -- 所有恢复
git reset HEAD <filename>

c. 改动已经commit,可是未push --恢复本地仓库的内容
先git log 查看提交历史中的commitid
git reset <commitid> --退到工做空间,即把commit 回退 、add 回退,工做目录里面的修改还在

git reset --soft <commitid> --退到暂存区,即把commit 回退 add 不回退
git reset --mixed <commitid> --退到工做空间,默认行为,即把commit 回退 add 不回退

************不可轻用,会丢失工做区和暂存区的内容***********************
git reset --hard <commitid> --退到上次commit的位置,即把commit 回退 add 回退 工做空间回退 
************不可轻用***********************

git reset 会丢失提交log,能够用git reflog 查看, 再用git reset reflogid 恢复

 

d. 改动已经push --恢复本地仓库的内容
先git log 查看提交历史中的commitid
git reset <commitid> --退到工做空间,即把commit 回退 、add 回退,工做目录里面的修改还在,【git log 会丢失,恢复:git status 查看,working tree clean , 再git pull】

git reset --soft <commitid> --退到暂存区,即把commit 回退 add 不回退,【git log 会丢失,恢复:git status 查看,working tree clean , 再git pull】
git reset --mixed <commitid> --退到工做空间,默认行为,即把commit 回退 add 不回退

************不可轻用,会丢失工做区和暂存区的内容***********************
git reset --hard <commitid> --退到上次commit的位置,即把commit 回退 add 回退 工做空间回退 【git log 会丢失,恢复:git pull】
************不可轻用***********************

 

git revert 也能够恢复,但会添加一个新的提交

 

5.暂存工做区内容:

#能够加注释

git stash save 'comment'

#查看暂存的内容

git stash show

#查看暂存列表

git stash list

#应用全部的暂存内容

git stash apply  

# 应用一条暂存,$是对应的序号

git stash apply stash@{$}

# 删除一条暂存,$是对应的序号

git stash drop stash@{$}

#清除全部暂存

git stash clear 


6. 用户名配置

# fatal: unable to access错误时执行以下操做
# 1.清除缓存中的配置信息
# 运行一下命令缓存输入的用户名和密码:
# git config --global credential.helper wincred
# 清除掉缓存在git中的用户名和密码
# git credential-manager uninstall

git config --global user.name shiyuan #设置用户名
git config --global user.email shiyuan##@163.com #设置用户邮箱

git config user.name shiyuan #设置本目录的用户名
git config user.email shiyuan##@163.com #设置本目录的用户邮箱

# 而后再push,输入一次用户名密码后再执行2,缓存用户、密码
# 2.建立文件存储GIT用户名和密码
# git config --global credential.helper store


# 执行完后查看%HOME%目录下的.gitconfig文件,会多了一项: ****从新开启git bash***
#   [credential]
#   helper = store
#   从新开启git bash会发现git push时不用再输入用户名和密码

 

TODO:rebase

相关文章
相关标签/搜索