Git 常用命令

5 篇文章 0 订阅

环境部署:
1、服务器106.12.2.195(CentOS7.3)
git仓库根目录:/gitrepo/qinsercmf.git          项目部署地址  /home/wwwroot/qinsercmf.git         
2、本地开发:Windows下 /c/MyProject/qinsercmf
3、本地与服务器采用密钥链接

Git 服务器搭建见: Centos7.3从零部署Git服务器之(二)初始搭建一个项目的Git空仓库

一、初始化创建命令
创建仓库命令
1、git  init  --bare qinsercmf.git   创建一个新的裸仓库 (新项目推荐使用这种方式)
        主要适用于项目的初始阶段,什么数据都没有,仅仅是建立一个裸仓库,用于设置仓库和项目源码分离,方便以后管理,比如把项目/home/wwwroot/qinsercmf 的管理仓库放置在 /gitrepo/qinsercmf.git内。
2、git  init   初始一个已知项目的仓库
        适用于在已有项目根目录里创建git仓库,例如已有项目/home/wwwroot/mytest/ ,我们可以 cd /home/wwwroot/mytest/里面直接使用 git init 生成库仓库,

实例:创建项目裸仓库

root用户:
# cd /                             //在根目录下创建
# mkdir gitrepo                    // /gitrepo为所有git仓库目录
# chown -R git:git ./gitrepo       //变更用户为git用户
# cd gitrepo
# git init --bare qinsercmf.git    //创建一个名为qinsercmf.git的裸的git仓库
出现
Initialized empty Git repository in /gitrepo/qinsercmf.git/ 创建成功
# chown -R git:git qinsercmf.git/   变更用户为git用户

此克隆地址为: git@106.12.2.195:/gitrepo/qinsercmf.git

二、客户端git常用命令
初始化(不常用)
1、git config --global user.name "niuxitong"   设置用户名
2、git config --global user.email "niuxitong@126"   设置邮箱
3、ssh-keygen -t rsa -C "你的邮箱"      这条命令前面不用加git
4、git clone  git@106.12.2.195:/gitrepo/qinsercmf.git  克隆远程到本地

三、克隆此项目到本地

本地项目部署在 C:\MyProject\
使用windows下的git工具 在此目录:右键-> Git Bash here

此时C:\MyProject\目录下多个了一个 qinsercmf的目录,并且里面有一个隐藏的.git目录。测试已经克隆成功。(如果看不到此。git目录,请设置你的系统显示隐藏目录)

2、创建本地分支
        初始状态下本地没有任何分支,只有远程的master分支
在本地新增任意一个文件
然后 依次执行  git  add .    和 git commit -m "备注信息"   这时就创建了本地master分支,这时就可以创建本地分支了。如下图:
  

分支管理命令:
1、git branch  查看当前分支
2、git branch  niuxitong  添加一个新分支
3、git branch -d niuxitong 删除一个分支  ,

4、git checkout  zhangsan   切换分支到zhangsan,如果没有此分支,就自动创建这个分支
5、git checkout  -b zhangsan  创建并切换到 zhangsan分支上(相当于git branch zhangsan 、git checkout zhangsan)

6、git branch -al  查看所有本分分支和远程分支

7、git push origin --delete demo     删除远程分支demo  (高版本的git 不再支持delete)
      git branch -r -d origin/demo
8、git checkout  --track  origin/develop  当远程有这个分支本地没有时,可以执行此命令自动在本地创建此分支,并自动关联远程分支了。

9、如何修改本地分支名(未推送到远程)
     git branch -m oldName newName
10、远程分支重命名(已经推送到远程和本地关联相同)

执行以下4步骤:

# 一定要在非当前修改分支上执行

a. 重命名此分支
$ git branch -m niuyumiong(旧)  niuyuming(新)

b. 删除远程分支
$ git push -delete origin niuyumiong

c. 上传新命名的本地分支
$ git push origin niuyuming

d.把修改后的本地分支与远程分支关联
$ git checkout niuyuming    ----------  一定要切换到要关联的分支上
$ git branch --set-upstream-to origin/niuyuming


9、https://www.cnblogs.com/chechen/p/9950798.html   http://ittxx.cn/view/164?from=timeline

四、文件提交常用命令

1、git status  查看当前状态
2、git add .  或者  git add  xxx.php  或者  git add -A    添加指定文件或者所有更新到追踪中,
3、git reset xxx.php  撤销重 add 添加的追踪 (不常用,在add 之后commit之前操作)
4、git commit   -am "备注信息"      (-a 表示all添加所有  -m 表示message填写备注信息 )"备注信息" 将文件提交到repository里。提交信息用英文的双引号括起来。(必须执行完add 才能操作)
5、git rm  xxx.php  删除一个文件(指的是已经提交过的文件)
6、git checkout  xxx.php文件名   撤销对文件xxx.php的更改
7、get checkout  niuxitong 分支名  切换到niuxitong分支  (如果没有此分支名,则会自动创建此分支)
8、git merge  niuxitong   合并niuxitong分支 (如在master分支上)
9、git push  [origin master ] 提交本地分支到远程,(第一次提交或者指定分支,就使用 origin + 分支名)
10、git push  niuxixitong:niuxitong   提交本地分支到远程
11、git diff  HEAD  查看文件的变化 ( 通常在 git add  之后  git commit 之前执行查看)
        git diff   001.txt   查看001.txt文件的变化 ;    
        git diff  HEAD   查看所有文件的变化
12、git log   查看日志

提交流程实例:

1、git  checkout niuxitong   切换到自己分支,本地一定要在自己分支上开发,特别是团队合作时。
    扩展:
    git branch  显示当前分支 和本项目本地的所有分支
    git branch niuxitongtest 添加一个新分支 (如果当前分支是master,那么就表示在master分支上添加的新分支,因此使用添加分支命令前最好先执行一下)
    git branch -d niuxitongtest 删除这个分支

2、git status   查看当前仓库状态,列出当前修改过的文件和新增的文件。碰到问题不知道怎么办的时候,可以通过看它给出的提示来解决问题
    (1)执行git status 出现如下图: 

说明当前分支是干净的,无任何变化
(2)新增加一个文件(在./view/my/目录下新建一个文件 test.html)内容如下图

  
再次执行: git  status  出现如下:

通过提示可以看出 :
(1)执行 git  reset HEAD  application/admin/view/my/test.html  可以暂停撤销此文件的加入。(不常用)
(2)执行 git add 命令把更新的内容提交上(类似于到git的追踪器)
(3)执行 git checkout -- application/admin/view/my/test.html   可以取消此添加(在执行add后commit前有效)

3、git add -A  把文件添加到git进程中

参数 -A (或者 . ) 表示添加所有
也可以使用: git add application/admin/view/my/test.html  单个文件添加

可以通过 git checkout -- 进行撤销所有add 到
    
4、git commit -m "备注信息"  这一步才将本地更新提交到本地git仓库

执行 git commit -m "提交信息" 将文件提交到repository里。提交信息用英文的双引号括起来。
注意:
(1)执行git commit  必须跟 -m "提交备注信息" 参数,用于log日志查看
(2)执行 git log 可以查看提交日志了

再次执行 git  status

提示Your branch is ahead of 'origin/niuxitong' by 1 commit.    --你的分支领先于远程'origin / niuxitong' 1个版本
在SmartGit可视化工具上可以看到:
 (use "git push" to publish your local commits)   -- 提示你下一步该执行“git push”发布您的本地提交到远程

5、git push  将本地仓库的跟踪推送到远程
 
如果此本地分支是第一次推送,(远程git仓库并没有此分支)
就使用
# git push --set-upstream origin niuxitong  (高版本的git --set-upstream用法有变化见下面)
或者
# git push  origin niuxitong

先把分支推送到远程, 此命令最好在添加分支之后就执行一次,推送到远程后,别人才能看到。
说明:由于我们这里采用的是密钥连接的,因此这里没有输入密码直接执行git push就可以了。如果你是使用密码连接的,这里会提示你输入密码。

再次执行 git status
 
说明 本地更新已经成功推送到了远程仓库管理,目前本地分支和远程分支是相等的了

到此,已经成功的将自己本地分支的更新成功的推送到远程仓库中了, 团队中的别人可以通过git pull 来拉取你的niuxitong分支的内容了。

如何将自己分支的内容 合并到 master分支上???

继续:

6、git checkout master  切换到master分支

7、git pull  拉取master分支的内容(比如团队中zhangsan更新了master仓库)

这里master没有更新,因此显示Already up to date.(已经是最新的)如果有更新,会拉取更新内容。同git push命令一样,如果你是使用密码连接的,这里同样会提示你输入密码

8、git  merge  niuxitong  合并niuxitong分支更新内容到当前分支

如果有CONFLICT (content): Merge conflict in AdminLib/Runtime/Cache/System/test.php 字样出现,说明有冲突文件,这里会报出冲突,解决冲突后执行: git commit -m "备注" 即可。  

9、git push 推送到远程

到此 master 分支内容已经合并了niuxitong分支的内容,并且已经推送到远程了。

10、git checkout  niuxitong   一定不要忘记切换到自己分支

11、git merge  master  把master内容合并到自己分支上(如zhangsan提交到master分支的内容)

到此,客户端整个提交已经完成。 通知运维更新远程服务器代码吧。

 

五、版本回退
1、git log   显示从最近到最远的提交日志  版本号为hash数值
     git log  --pretty=oneline   ,一行显示

含有 HEAD 的为当前版本
2、git reset --hard HEAD^       -- 回退到当前版本的上一个版本

此时 001.txt文件的内容已经还原到上个版本了
3、git reset --hard d83a5068d8dbe  (版本号的至少前七位或者完整的版本号) 按指定版本号还原。

 可以看出,一旦回退到某个版本后,此版本后面的版本号 就将看不到了。
比如本次退队到了 第25次版本。  现在想再次还原到  第28次。就不知道版本号是多少了。如何处理呢???
可以使用 git reflog 命令来查看每一次处理的版本号

4、git reflog   用来记录你的每一次命令

通过此命令然后可以找回所有的版本号


六、git 常见问题:

1、git diff  查看文件变化

2、git checkout -- . 撤销更改

3、git log 查看提交的 commit记录

4、如何清除未追踪的文件?

# git clean -xf 

这个命令的杀伤力比较大,它删除当前目录下所有没有track过的文件。不管它是否是.gitignore文件里面指定的文件夹和文件

5、清除git缓存

依次执行如下三个命令
# git rm -r --cached .
# git add .
# git commit -m 'update .gitignore'

6、设置忽略文件
.gitignore

7、关于git status中文乱码的问题解决
如果你有文件名是中文的,在使用git status时会乱码会出现乱码:如下图

解决的办法两个:
方法一:
先执行命令:git config --global core.quotepath false   
再执行:git status 就可以了

方法二:
进入项目的.git/目录下,找到git的配置文件config 在[core] 模块里添加 quotepath = false 配置即可

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python Git常用命令大全: Git是现代化的版本控制系统,常被用于软件开发,协作和管理。它允许在开发过程中创建和管理不同的版本,跟踪文件的更改,以及支持团队合作。Python则是一种广泛应用于开发Web应用程序以及数据科学和人工智能领域的高级编程语言。在使用Git时,Python的代码可以与Git进行集成。这里是Python Git常用命令的大全: 1. git init:初始化一个新的 Git 仓库。 2. git clone:从现有的 Git 仓库克隆项目,可以是本地仓库或远端仓库。 3. git add:将文件添加到 Git 仓库中。git add . 可以添加所有更改。 4. git commit:将所有已添加的文件提交到本地 Git 仓库中。 5. git status:查看当前工作目录中 Git 仓库的状态。 6. git log:查看提交记录。 7. git push:将本地 Git 仓库的更改推送到远端仓库。 8. git pull:将远端 Git 仓库的更改拉到本地仓库。 9. git branch:创建新的分支。 10. git checkout:切换分支。 11. git merge:将一个分支的更改合并到另一个分支。 12. git revert:撤销一个提交。 13. git rebase:将一个分支的修改合并到当前分支。 14. git config:配置 Git。 15. git remote:管理远端仓库。 这是Python Git常用命令的大部分命令,但这并不是全部。在使用Git和Python时,这些命令应该是最为重要的。无论是在个人项目中还是团队合作中,这些命令会让你更加高效地使用Git,并保护你的代码免遭不可挽回地灾难。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值