git常用Linux命令


首先下载好Git https://git-scm.com/download/win

默认点击下一步

安装完成后,在开始菜单里找到“Git”->“Git Bash”。如果命令行窗口弹出,则表明安装成功。

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
Git是分布式版本控制系统,每个分布系统都必须有用户名和用户邮箱。
接下来创建一个空目录
$ mkdir yourfolder Make directory 
$ cd learngit      Change directory
$ pwd       Print working directory 
/Users/Administrator/yourfolder
然后把这个目录变成Git可管理的仓库
$ git init 
加入stage(暂存区)
$ git add yourflie.txt
 
提交(当前分支)
$ git commit -m "your explanation"//m(message提交说明)
$ git log  //显示最近提交日志 
$ git log --pretty=oneline //显示一行简化日志
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上个就是HEAD^^,100个^可以写成HEAD~100
$ git reset --hard HEAD^ //回退到上个版本
$ git reset --hard version numbers //回退到指定版本(版本号不必写全,Git会自动寻找)
$ git reflog reference log //命令日志
$ git status //仓库当前的状态
$ cat filename //查看文件
git diff HEAD -- yourfile 查看工作区和版本库里面最新版本的区别

 只有被add过的才能被commit。

$ git checkout -- yourfile //撤销工作区修改
//$git checkout是版本库文件替换工作区文件

$ rm yourfile  //删除文件
手动删除文件后使用git rm 和git add 结果一致
从来未被添加到版本库的删除文件是无法恢复的!
$ git remote add origin git@github.com:YourAccountName/YourRepository.git
//远程库名是origin,这是Git默认的叫法,也可以改变

$ git push -u origin localrepository//把本地库的所有内容推送到远程库,第一次推送local分支时,可以加上-u参数。参数加上后,Git不但会把本地的分支内容推送到远程新的分支。
首次使用命令连接时,会有个警告
因为SSH连接在第一次验证Key时,需要你确认Key的指纹信息是否来自服务器,输入yes回车即可。
 

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

 如果失误没有yes到

 解决办法:https://blog.csdn.net/qq_43768946/article/details/90411154

$ git remote rm  //删除远程库
$ git remote -v//查看远程库信息  -v显示更详细的信息
$ git remote rm origin

$ git checkout -b branch-name remote/local //在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致
$ git push origin pointer //本地分支提交远程库
$ git branch --set-upstream-to=remotepointer/localpointer  //设置本地分支和远程分支的链接
$ git pull //把最新的提交从远程抓下来

/*最新提交和你的提交有冲突时,先用git pull把最新的提交抓取下来。然后本地合并,再解决冲突,再推送。
$ 因为分叉的提交需要三方对比,所以git rebase 把分叉提交历史整理成直线使得查看历史提交的变化更容易。缺点是本地的分叉提交已经被修改过了。
 此处的“remote”解除了本地和远程的绑定关系。要真正删除远程库,登录GitHub删除。
*/
$ git clone git@github.com:zhoushusheng/gitskills.git 从远程库克隆

创建新的分支时,Git新建一个指针。

Git合并分支通过改指针实现,工作区内容不变。

$ git checkout -b pointer/*-b参数表示创建并切换,相当于以下两条命令:  
 $ git branch pointer
$ git checkout pointer
撤销修改则是$git checkout -- */
//git branch命令查看当前分支:

$ git branch

$ git merge dev //合并分支
$ git branch -d pointer //删除分支

//创建并切换到新的dev分支,可以使用:

$ git switch -c dev
//直接切换到已有的master分支,可以使用:

$ git switch master

//当Git无法自动合并分支时,就必须把Git合并失败的文件手动修改。

合并分支时,Git会用Fast forward模式。这种模式下删除分支后,它会丢掉分支信息。

如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit。这样,从分支历史上就可以看出分支信息。

$ git merge --no-ff -m "merge with no-ff" pointer
/*准备合并pointer分支,--no-ff参数表示禁用Fast forward
要创建一个新的commit,所以加上-m参数*/

暂时不想提交又要保存,Git还提供了一个stash,可以把存储当前工作现场:

$git stash
$git stash list //查看工作现场

$git stash apply //恢复后不删除
$git stash drop //删除;
$git stash pop //恢复的同时也删除
$git cherry-pick committd number//复制一个特定的提交到当前分支

相关