Mac git下载安装使用

Mac git下载安装使用

1、mac os安装git

通过命令行 先安装Homebrew,再通过Homebrew安装git

1./bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"   # 安装Homebrew

2.brew install git   # 安装git

3.git --version  # 查看git版本,如果正确显示了版本信息,说明已安装成功。

2. git配置

1.用户账号信息

配置个人的用户名称和电子邮件地址,以后每次与Git的交互都会使用该信息
$ git config --global user.name "Your Name" //其中Your Name即是你的GitHub账号
$ git config --global user.email "email@example.com" //其中email@example.com即是你GitHub账号绑定的邮箱

2.指令查看Git的配置信息:git config --global --list

3.生成公钥/密钥(ssh key)

Git关联远端仓库时候需要提供公钥,本地保存私钥,每次与远端仓库交互时候,远端仓库会用公钥来验证交互者身份。使用以下指令生成密钥。

$ ssh-keygen -t rsa

一直回车默认,直到成功

4.查看公钥

$ cat .ssh/id_rsa.pub  //使用cat命令查看生成的密钥,并复制

5.登陆GitHub,打开“Account settings-->Preferences-->SSH Keys 页面

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:

3. git常用命令

Git global setup: #Git全局设置
git config --global user.name "chen xiudong"
git config --global user.email "chenxiudong@codemao.cn"

Create a new repository:#创建一个新的仓库
git clone git@gitlab.codemao.cn:chenxiudong/test.git #git远程仓库克隆到本地
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master


Push an existing folder:#推送现有文件夹
cd existing_folder
git init
git remote add origin git@gitlab.codemao.cn:chenxiudong/interface.git #关联远程仓库
git add .
git commit -m "Initial commit"
git push -u origin master


Push an existing Git repository: #推送现有Git存储库:
cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.codemao.cn:chenxiudong/interface.git #关联远程仓库
git push -u origin --all
git push -u origin --tags

以下引用了凯宾大佬的笔记:

注意,上面不设定名字的话,那么远程协助就不知道是谁提交的了
------------------------------------------------------------------------------------------
把当前目录变成仓库
git init
1.查看文件修改了什么内容
git diff 文件名
如:git diff readme.txt

1-1.查看工作区和版本库里面最新版本的区别
git diff HEAD -- 文件名 (注意文件名和前面--有空格)
如:git diff HEAD  - - readme.txt
2.让我们时刻掌握仓库当前的状态,看什么文件被修改了
git status命令

看什么文件被改了,接着看文件具体修改了什么内容分别用1~2命令

3.把当前这个目录变成Git可以管理的仓库
git init命令

4.把文件添加到仓库轨道(实际上就是把文件修改添加到暂存区)
git add 文件名
git add . 后面加一个.意思是所有改动的文件都添加到暂存区

5.把文件提交到仓库里
git commit -m "备注"

先要把要保存的文件放入仓库轨道,然后再提交到仓库里,使用4~5命令
--------------------------------------------------------------------------add 和 commit 合到一步提交的方法 git commit -am '提交备注'(注意这个命令 如果新增文件就不要用这个新创建的文件会commit不上去,要用add 和 commit命令 )
6.查看版本记录,回到过去
git log
git log --pretty=oneline (精简化只显示 id+备注)  
后记: 使用命令查看日志后,按q 即可退出

7.查看文件
$ cat 文件名
如:$ cat readme.txt

8.回滚版本
git reset --hard commit_id

还有git revert (这种会保留前面的版本,把回退的版本再提交一个版本) 
https://blog.csdn.net/yxlshk/article/details/79944535

9.要重返未来,查看命令历史 每次commit的命令记录
git reflog

10.文件在工作区的修改全部撤销
(回到最近一次git commit(最新的版本)或git add(和暂缓区那的信息一致)时的状态)
git checkout -- 文件名  
git checkout 文件名 (后面试了下 deary说百分之90是不需要加--,我试了下没加成功了,加了反而不行)  #撤销单个文件用这个命令
git clean -f  #撤销在工作区没有add的全部文件  #亲测 文件 可以用这个命令,但是文件夹的用这个命令不行,要手动区删除文件夹
如:git checkout readme.txt

11.可以把暂存区的修改撤销掉
git reset HEAD file
如:git reset HEAD readme.txt   
假如工作区里面有修改,暂缓区有暂缓文件,撤销暂缓区的文件,暂缓区清空,工作区还是原来的修改文件
后记: 使用上面的命令无法把暂存区的文件撤销回工作区
使用了 git rm --cached * 或着 git rm --cached 文件名 可以
当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步9~10

12.删除文件
rm 文件名 (在工作区删除该文件)
如:rm test.txt
git rm 文件名 (在工作区删除该文件,并且提交到暂缓区)
如:git rm test.txt
----------------------------------------------远程仓操作-------------------------------------------------------------------------------------------------------------------------
13.在本地的仓库下运行下面命令,关联远程仓库 (这个是先建了本地仓库,再建远程仓库的,这里一般会提示要你继续关联mastr,见后记)
git remote add origin git@github.com:用户名/远程库名.git
如:git remote add origin git@github.com:michaelliao/learngit.git
14.本地仓库资料提交远程仓库
git push -u origin master  (首次提交远程仓库加-u 同步分支,第一次使用会询问验证 输入yes)
如:git push -u origin master

 本地仓库版本回滚后,版本低于远程仓,使用下面命令强行更新远程仓:

 git push -f origin master

 注释: origin 远程仓库名, master 分支名,-f 为force,意为:强行、强制。

有时上面命令不管用 要把 origin 换成远程仓库的名字 ,如: git push -u git@github.com:Lucky-Syw/lucky_test.git master

15.克隆远程仓库到本地仓库 (这个是先建远程仓库,再克隆到本地仓库。 注意这个只需要cd 到你要的文件夹下,执行下面的命令 就直接创建了关联了远程仓的 本地仓了!! )   
git clone git@github.com:用户名/远程库名.git
如: git clone git@github.com:michaelliao/gitskills.git

16.克隆别人的仓库,再自己的仓库里使用 git clone git@github.com:用户名/远程库名.git 就可以把别人仓库的资料克隆下来了  (比如以前产品的需求说明放在他自己的github仓库上,我们去下载的情况)
17.同步远程仓库信息到本地关联的仓库里   使用了13关联了远程库,使用17同步远程库资料下来
git pull origin master

18.试了下面这个比较正常 (自己想的,估计是错的)
下面这个操作才是正规的:
18-1:先查看远程仓库有没有变化
git fetch origin
18-2:master分支有变化的话,先使用命令同步下来
git merge origin/master

再提交自己要提交的文件
git push origin master

假如回滚了版本再使用强行push上去

19.上海悠悠的(下次试试这个)
git add * 
git commit -m '更新说明'
若果是多人同时开发代码得先git pull  #问了Dreamy 其实pull是自动合并 即执行了 上面18-1 和 18-2 的命令
git pull
命令用于从另一个存储库或本地分支获取并集成(整合)
最后一步是push到远程的master分支上
git push origin master 
出现问题解决方法:




出现下面的提示

git config --global user.name "Your Name"

git config --global user.email you@example.com

那就按提示输入命令:

git config --global user.name "你的名字"

git config --global user.email 你的邮箱

后记:

本地仓库关联了远程仓库,本地仓库删除文件 要使用 git rm 命令去删 删完再commit提交。

手动删除的 add 是无法把删除文件加入待提交区提交的。

后记:

当本地仓库首次关联了 远程仓库,提交信息到远程仓库时,会报错

If you wish to set tracking information for this branch you can do so with:

git branch --set-upstream-to=origin/ master

那么要使用命令 关联 远程仓的master

git branch --set-upstream-to=origin/本地分支 远程端分支 后 git pull 拉取远程仓

如果远程仓拉取的东西 和本地仓有冲突 会提示

Automatic merge failed; fix conflicts and then commit the result.

那么就打开本地仓具体的文件,进行解决冲突,然后git add 和 git commit 然后再git pull 同步回远程仓库 即可

例子:

git branch --set-upstream-to=origin/master master

----------------------------------分支操作-------------------------------------------------------------------------------------------------------------------------

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>

创建+切换分支:git checkout -b <name>

合并某分支到当前分支:git merge <name> (这个方法的话 查log的时候是将分支的提交log合并到主线,不知道哪一步是分支和主线合并的步骤)

合并某分支到当前分支:git merge --no-ff -m "merge with no-ff" 分支名称

如:git merge --no-ff -m "merge with no-ff" dev(这个方法合并分支的话,会主线和分合并这里打一个log,那么我们看log的时候就知道这里是做过合并的地方)

删除分支:git branch -d <name> 分支没有合并的话要用-D

``(注意:删除分支后,要找回这个分支,记得要先创建一个分支,在这个分支在找回原来分支的记录。如果在主线找回分支记录的话,主线信息会被分支替换掉)

(假如工作区和暂缓区有工作资料存在,切换支线 这些文件会跟着走,展示在切换的支线上,所以每次切换线之前都要确定当前线没有待办事项)

推送本地分支到远程库: git push origin branch(分支名称)

拉取远程分支到本地分支: git pull origin branch(分支名称)

使用时记录备注:

分支不要去删除主线上的文件,要合并后再删除主线上要删的文件

拉了分支后,不要动主线上的文件,不然主线提交了版本,分支合并不了

16.查看分支合并图形
git log --graph --pretty=oneline --abbrev-commit
git log --oneline --decorate --graph (这句效果一样,也可以看提交记录 和tag记录)
git log --decorate



----------------------------------------------------------打版本标签 tag---------------------------------------
这里要搞明白,一个标签 只能对应一个commit ,一个commit 能对应多个tag
打版本标签,会把最后一次commit的地方加上版本号 v1.0
git tag -a v1.0 
#-a 是给这个标签备注的意思,首次一般要-a 给标签加备注,再次使用这个标签的时候就可以不用-a
另外一种写法: git tag -a v0.1.2 -m “0.1.2版本” 会把最后一次commit的地方加上版本号v0.1.2,并对这个标签添加备注“0.1.2版本”
查看所有标签
git tag

删除某个标签
git -d v1.0
后记:有时上面那个命令执行不成功就使用 
git tag -d v1.0
如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签的方法
git tag -a v0.9 85fc7e7   (85fc7e7是某次commit的编号,需要打那个就填哪个 v0.9是要打的标签) #这个试了貌似木有ok
git tag -a 0.9 -m "备注" 85fc7e7(85fc7e7是某次commit的编号,需要打那个就填哪个 v0.9是要打的标签 -m 是对标签的备注) #这个试了ok
可以看到说明文字 git show <tagname>
查看标签   git tag
参考:http://www.runoob.com/git/git-tag.html

-------------------------------------------------------------------------------------多人协作-----------------------------------------------------------------------
是把对方的 id_rsa.pub公钥 配置到远程仓库里,再通过克隆,同步远程库等方法达到协作
 
 教程参考:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000    
        http://www.testclass.net/git/git-github-start/
        http://www.runoob.com/git/git-remote-repo.html
看得是前2个
  虫师的python-selenium教程有个git多人协助的说明有空要去看
后记:
自己摸索了下一个流程
先拉取github上的主线 到各自关联的本地库,
然后在各自本地库创建自己的分支,进行工作(注意不要删除主线的文件)
工作完后,把分支和主线合并一起,使用命令 git fetch origin 查看远程库主线有没有变化
有变化就先 git pull origin master 同步到本地 
然后再 git push origin master 把本地信息推送到远程库

发现上面的流程不对
应该先拉一条master
然后切一条自己分支开发
查看master是否有变化,有变化拉最新的下来
把master合并到自己的分支
推自己的分支上远程仓
经理 远程仓操作合并动作
后记:
git add . 和 git add * 区别
git add . 会把本地所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤,但是git add * 会忽略.gitignore把任何文件都加入 
posted @ 2022-08-21 11:33  夜久听山雨  阅读(2900)  评论(0编辑  收藏  举报