« 上一篇下一篇 »

分布式版本控制系统Git的安装方法及使用命令汇总

 

Git是什么
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个先进的分布式版本控制系统,用来追踪计算机文件的变化的工具,也是一个供多人使用的协同工具。它是一个分布式的版本控制系统。简单来说,就是你要和你的伙伴一起完成一项任务,但是你们要互相交换修改,查看自己的历史版本等。版本控制系统就是帮助我们做这个的。

初始化
git init (初始化git通过git init命令把这个目录变成Git可以管理的仓库)

创建sshKey
ssh-keygen -t rsa -C " (创建本机的sshKey)

下载
git clone https://github.com/userzf/TODO.git (后面复制一下你的下载地址)

上传
上传文件分几步
1 git add .(上传当前目录下所有更改过的文件) --首先把更改过得文件添加到缓存区

2 git status (查看缓存区文件) --可省略

3 git commit -m'描述提交信息' (准备提交)-- 填写提交信息

4 git push(上传文件) --提交,到这一步就可以成功上传文件了

更新
git pull (当线上仓库比你的版本高的时候更新自己电脑里的仓库)

创建切换分支
git checkout -b dev (创建dev分支并切换到dev分支)

上面 这条命令相当于两条命令:

git branch dev (创建分支dev)

git checkout dev (切换到分支dev)

查看当前仓库的所有分支

git branch

显示如下,已经成功切换到了branch分支

 `git branch`
* dev
  master
提交时可以指定分支

git push origin dev (提交到分支dev)

删除分支
git beanck -d dev (删除分支dev)

git beanck -D dev (强行删除分支dev)

合并分支
一般在公司多人开发时,把主分支master合并到自己的分支dev(这里用dev分组代替自己创建的分支),在分支dev上进行合并,【合并时处理分支与主分支冲突】,然后再切换到 主分支master合并自己的分支dev
(自己的项目才这么干,公司多人协作一般都会请求合并到主分支,由相关负责人去合并你的认知)

首先使用👇这条命令 切换到自己的分支(如果你在自己的分支可看下一条)

git checkout dev (切换到分支dev)

然后使用👇这条命令,将主分支合并到自己的分支

git merge master (将master这条分支合并到自己的分支dev)

合并处理问题后

切换到主分支master 然后进行合并分支dev(多人协作时这个任务不用你做!你只需申请提交)

查看命令历史提交历史
{查看提交历史,以便确定要回退到哪个版本。}

查看提交历史

git log

查看命令历史(你使用过哪些git命令)

git reflog

撤回
如果你现在很急想要撤回,希望你看过👉 查看命令历史|提交历史 这个!

工作时 难免会出现错误的提交或操作,出了问题不要慌,要冷静!!!(表面冷静,实则慌的一批!)😥😥😥😭

git 撤回操作,撤回后两种形式

1 git reset --hard commit_id

(PS:commit_id:需要返回的版本号,这种方式是去用git reflog命令先查看一下提交的编号,然后返回到输入的这个commit_id操作前的样子)

2 git reset --hard HEAD^

(HEAD:表示当前版本,后面的^表示上一个add ***代码的时候,可以有多个^,当然往上100个
版本写100个^比较容易数不过来,所以写成HEAD~100。但是自我感觉第一种方式要放心好用一点! )

设置用户名和密码
git config --global user.name [username]

git config --global user.email [email]

查看配置信息
git config --list

强制pull
👇这段代码强制把云端仓库下载下来,有需要的时候你可能会用到!

git fetch --all

git reset --hard origin/master

git pull

强制push
现将远程主分支拉下来,在强制推上去

git pull origin master

git push -u origin master

1. 常用命令

  • git init           会生成.git文件

  • git remote add origin https://xxxxxxx.git        将本地git关联到远程中央库

  • git add    后缀文件名可以指定添加某些文件到暂存区,或者后缀--all/.可以将当前管理文件下的所有改动文件添加

  • git commit 提交暂存区内更改,在这之后需要填写提交日志,也可以直接在后面追加-m "[message]"合并操作

  • git push origin [branch-name] -f强制推送分支,用于已知的冲突的情况下,一般在公司不建议这样用

  • git branch      查看本地仓库,后缀加-a可以查看本地和远程branch

  • git branch [branch-name]  创建分支,但是并没有切换到该分支.

  • git checkout [branch-name] 切换到指定分支,在checkout后追加-b会创建分支并切换

  • git push 将本地推送到远程,如果本地是本地新建的分支需要建立推送关系,追加--set-upstream origin [origin-branch-name]

  • git pull将远程拉取到本地

  • git merge [branch-name]将指定分支合并到当前分支,如果发生冲突需要先解决相关冲突进行更改

  • git merge --abort终止当前merge操作,这样就可以重新进行合并操作
    上述是正常的操作命令,下面是关于一些关于删除和撤销的命令.

2. 删除命令

  • git branch -d [branch-name] 删除指定分支——-当前操作的branch不能进行删除操作,如果要删除的分支没有向master分支进行合并,那么强制删除是需要将-d更换成-D,这里需要多一句,本身branch就是一个引用,删除的只是引用,并不是真正的删除,Git的自动将回收机制会在一定时间内回收.所以branch是可以恢复的,但是一定要是在Git没有回收之前.

  • git push origin :[branch-name] 删除远程分支——-这个并不是真正的删除远程,只是推送了一个空的分支,看着就像删除了一样.主要origin后面一定要有一个空格

3. 撤销命令

  • git reset --hard HEAD^撤销最新一次的提交——当然也可以撤销之前很多的次的提交只需要更改HEAD后面的^的个数或者直接HEAD~n(n>=1),reset后面有三个后缀,--hard重置commit,并清空所有操作;

  • git rebase -i HEAD~n撤销指定位置的commit——在这之后会弹出对应的操作框,你需要将你将你要撤销的commit整行删除然后保存退出就可以了

  • git rebase --onto [目标commit] [起点commit] [终点commit]撤销指定位置的commit—–和上面的效果是一样的,解释下参数,第一个可以理解为你要撤销的前一个,第二个可以理解为你要撤销的那个,第三个一般写当前分支的名字(其实也就是最新的commit)

  • git revert HEAD^倒置最新一个commit的所有内容——可用于已经将commit推送的远端的情况.

4. 其他命令

  • git checkout XXX+git checkout -b [branch-name]这样就可以恢复指定分支,XXX是通过git reflog找到的sha-1值找你删除前的最后一次操作,一般都是moving from [del-branch-name] to master,这个就要看你找的对不对了.还有一个特殊情况就是log已经被删除了或者引用呗回收那就无力回天了(反正我是不知道怎么恢复,有大佬,请留言).

  • git stash+git stash pop

    小结:

      这有个小技巧,就是将当前工作目录的改动藏匿起来.场景就是在你正在写什么东西的时候老板来一句:给我把那个什么给我打个包.然后我们add-commit-checkout-打包-reset-继续写代码,这尴尬了!有了这个就可以stash-checkout-打包-stash pop-继续写代码.reset是有风险的,玩不好就尴尬了.不要问我为什么!!!