git 常见命令 和 git 原理图

git 工作原理图:git 有4 个仓库 这是 git和 svn 一个巨大的区别,所以git 没网也能提交代码和查看记录。 svn 只有2 个仓库 ,一个远程一个本地。

 

 

 

 

1 创建git 仓库(  参数? )

  git init –bare test.git  创建一个 git 仓库,并且不生成 .git 文件

  git init test.git  创建一个 git 仓库,会生成.git 文件 

2 检出代码 

  git clone 用户名@ip:仓库地址

 

3 添加一个文件 到 git 管理 

  git add  文件名

  或者 

  git add .  添加所有文件

 

4 提交代码(提交到本地)

   git cimmit -m  提交备注

 

5 推 本地的提交到 远程

  git push;

 

6 跟新代码 

  git pull;

 

--------------------------分支相关--------------------------------

 

7 切换分支 

  git checkout 新的分支名

 

8 查看所有分支 

  git branch -a

  git branch -r 查看远程分支

  git branch  查看本地分支

 

9 新建分支 

  git branch 分支名  [基于指定分支来建立这个新分支]

 

10 推一个分支到远程 

  git push origin 本地分支名:远程分支名

 

11 删除一个远程分支

  git push origin --delete 远程分支名 (  git push -dr 远程分支名)

 

12 删除一个本地分支

  git branch -d 本地分支名  (  -D 强制删除 )

 

13 合并一个分支 到 当前分支

  git merge 分支名

 

-----------------------------------标签部分------------------------------

14 查看所有标签

  git tag;

 

 

15 创建一个本地tag

 

  git tag  tag名

 

16 推一个所有本地tag 到远程。

  git push --tags;

 

17 新建一个分支 指向某个 标签

 

  git checkout -b 分支名 标签名

 

---------------------------------------查看部分-------------------------------------

 

18 查看提交记录

   git log 

 

19  查看差异

  git diff

 

20 强制跟新

  git  fetch

 

 

21 文件恢复

 

  git checkout 文件名 拉取暂存区文件 并将其替换成工作区文件

 

  git resset 文件名 拉取最近一次提交到版本库的文件到暂存区 改操作不影响工作区

 

 

 

22 吧当前改动 移动到 缓冲区。(当前代码恢复到 上次 提交的 样子 )

 

  git stash;

 

 

 

23 从缓冲区 读取 缓存的 改动。

 

  git stash pop;

 

 

 

 

 

 

 

 

 

 

 

----------------------------------------git 命令2 -----------------------------------------------

 


1 git init 初始化本地git 仓库 ( 会在当前 目录创建 .git 文件)

2 git status 查看 git 工作区 暂存区 的 状态

3 git config 修改当前项目配置
git config user.name 用户名 修改用户
git config user.email 邮箱 修改邮箱

4 git config --global 修改全局 的 配置。 同上,所有项目都生效。 但是 优先级低于 项目配置。

5 git add 文件名 添加一个文件到git 管理(加入缓存区)

6 git rm --cached 文件名 移除git管理,从缓存区删除

7 git commit 文件名 提交一个 文件到本地仓库
备注 不叫 -m 备注 会提示 输入备注消息。
一般 使用 git commit -m 备注 文件名

8 git commit -a 已经 add 过得文件,可以直接使用 commit -a 提交。也可以 先 add 然后 commit。
如果直接 提交到工作区,是不能回退 的。

9 git log 查看提交日志
git log --pretty=oneline 单行显示
git log --oneline 单行显示 这种方式 hash 值只显示易部分
备注:提交日志 的 唯一标志是 提交内容的 哈希值。


10 git relog 查看 带有指针的 日志 ( 全部版本,上面的 只有比当前早的版本。)


11 git 的 HEAD 是 当前版本的指针。 它只想 一次一次的提交记录。

12 git reset --hard hash (短的长的都可以) 回退到指定 版本。 后退不会删除记录。还可以 在回来。

备注:git reset --hard 不加hash值 回到后的版本。
13 git reset --hard HEAD^ 指针回退
git reset --hard HEAD^^^ 后退3 部
git reset --hard HEAD~3 后退3 部


备注:后面加 几个 ^ 就回退几步
--soft 只是移动本地库的指针
--mixed 在移动本地库的指针,重置暂存区
--hard 在移动本地库的指针,重置暂存区 ,重置 工作区


14 git help 命令 查看文档


15 git diff 文件名 文件比较 (不带参数的时候和缓存区比较。)
git diff HEAD 文件名 和 最后一次本地库比较
git diff HEAD^ 文件名 和 倒数第二次本地库比较
git diff HEAD hash 文件名 和制定版本的本地库比较。

备注: git diff 不带文件名 比较所有文件


16 branch -v 查看所有分支


17 git branch 分支名 创建一个新的分支


18 git checkout 分支名 切换分支


19 git merge 分支名 ,把 指定 分支合并到当前分支。


20 git 解决冲突后 ,使用 git add 文件名,来标记已经解决冲突。然后 使用 git commit 不要文件名 结束 合并的 的状态。

21 git remote add origin git仓库地址 给gi仓库地址去一个别名,或者说吧 仓库地址赋值给 origin 这个变量。
后面 就用 origin 代替 git 的远程地址。
git remote -v 查看 这些参数

22 git push origin master 吧本地仓库 推送到 origin 对应 的远程仓库。

23 git clone git远程仓库地址 克隆
三个操作 1 创建本地仓库 ,2 下载远程代码 3 吧远程地址赋值给 origin 变量。

24 git fetch origin master 下载 远程仓库的master 的文件,存在本地的 origin/master 这个分支,不会修改 本地的master 分支。


25 git pull origin master 下载远程代码,并且合并到 本地分支 master

备注: 相当于 git fetch origin master + git merge origin/master

26 关于 origin 的解释 ,origin 是 git 的一个变量,它指向远程仓库地址。 相对于很长的 git仓库地址 ,使用 origin 来代替他 。写起来容易些。



27 fork 功能 相应于在团队之外的代码库的基础上 派生 了一份新的代码库。这个新代码 属于当前的人。并且可以发起一个 pull 请求,让原来 团队 merge 这个 pull 请求。这样 这个代码就提交到原来的代码上了。


28 ssh-keygen -t rsa 生产 公私钥 对 和 linux 里面一样
或者 ssh-keygen -t rsa -C 备注

29 ssh-keygen 里面生产的 公私钥对在 ~/.ssh 目录下。并且默认使用者里面的私钥。 只需 吧公钥上传到 管理仓库就够了。


30 https://github.com/github/gitignore 里面有很多 git 忽略文件的 配置文件
https://github.com/github/gitignore/blob/master/Java.gitignore Java的 就是这个


31 在 gitconfig 文件 里面 [core] 下面 写上
[core]
excludesfile=C:/目录/忽略文件路劲/忽略文件名 来忽略文件 ( 比如上面的 Java.gitignore)

或者 吧忽略文件命名为 .gitignore 直接放在项目 根 目录。


32 git 工作流
1 集中式 不用分支,类似 svn

2 gitflow 使用分支,适合团队内多分支开发

3 forking 团队间合作,使用 fork 和 request pull。 来提交 拉去代码申请。

 

 

 

 

git 分支 使用 参考图:

 

 

 










 

 

 

 

 

posted on 2018-12-20 17:34  zhangyukun  阅读(297)  评论(0编辑  收藏  举报

导航