首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
git
Pro Git
Atlassian Git Tutorial
Pro Git 简体中文翻译
GitX
宝塔
V2EX  ›  git

git 能配置自动跟踪目录内的文件吗?

  •  
  •   frylkrttj · 302 天前 · 3419 次点击
    这是一个创建于 302 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如我想 git 跟踪目录内所有文件,在修改多个文件后只需要 git commit 一次就行了。

    现在每次 git commit 前都要用 git add 添加下文件,太烦了吧。还要先 git status 查看下修改了哪些文件,又添加了几个文件。

    又比如自动跟踪已 git add 过的文件,防止修改文件名后忘了 push 那个文件。

    我刚开始学 git 遇到的问题有点多。

    目前还不知道怎么查看仓库内的文件,百度找了半天没找到我要得。

    69 回复  |  直到 2019-01-23 11:21:42 +08:00
        1
    dacapoday   302 天前 via iPhone
    那就先用图形客户端呗,至少能熟悉功能。然后再看图形客户端的命令日志。
        2
    wuyuanwei   302 天前
        3
    frylkrttj   302 天前
    @wuyuanwei “ git commit --all ”只能提交已“ git add ”过的文件呢。这样我目录内新添加的文件和修改文件名后的文件咋办呢。
        4
    frylkrttj   302 天前
    @dacapoday 有什么图形客户端能显示当前操作用的是什么命令?
        5
    Panway   302 天前
    @frylkrttj SourceTree 菜单--查看--显示命令历史
        6
    besto   302 天前
    首先 git add 是可以 add 目录的
    其次 git add 之后 你可以再更改, 这个时候提交只会提交你 add 那个点的版本.

    你这个需求明显不合理啊
        7
    rocksolid   302 天前
    git add .
    不就行了么 有什么麻烦的
        8
    rocksolid   302 天前
    或者直接用 vscode
        9
    ddddad   302 天前   ♥ 3
    lz 还没踩过提交错误的坑
        10
    hjq98765   302 天前
    我的感觉是,git 设置成这么个流程是有其中的深意的
        11
    frye   302 天前   ♥ 1
    git add .
        12
    frylkrttj   302 天前
    看前面这么多回复差点又以为是自己笨了,幸好等来了 #11 @frye 的回复,才发现自己也没那么笨嘛,@frye 是真知道我在想什么啊。
        13
    frylkrttj   302 天前
    现在好像只剩下,怎么实现自动跟踪文件名的问题了。
        14
    quinoa42   302 天前
    Untracked, stated 和 commited 是三种不同的状态,这么做自然有它的理由
    不过关于楼主的问题,不少 IDE 是支持自动 track 的,比如 Intellij
    但是我觉得这“智能”功能很烦,所以我一般都是关闭 IDE 的 git 相关功能的
        15
    passerbytiny   302 天前
    @frylkrttj #13 文件名修改无解,必须 IDE 解决,纯命令行是 git rename,相当不方便,还容易漏(你要不用这命令,那文件改名后是 remove 和 add )。
        16
    hash   302 天前
    按照楼主的描述似乎只需要写一个 alias?
        17
    wuyuanwei   302 天前
    @frylkrttj `git add .` 之前最好还是 `git status` 检查下状态,避免不必要的提交错误。通常我会配合 Facebook PathPicker 手动选择待暂存的文件。
        18
    V2exUser   302 天前 via Android
    idea 倒是会自动弹出是否自动加入 git 的窗口
        19
    ww23xx   302 天前 via Android
    (小姊姊我面向 V2EX 编程)
        20
    chinvo   302 天前
    不是,这些简单问题,你 Google 一下好么

    再不济去微信上问那些大叔大爷啊 [:doge:]
        21
    chinvo   302 天前
        22
    shuizhengqi   302 天前   ♥ 1
    一看就是年轻人,没写过大项目
        23
    stephen9357   302 天前
    无脑 git add .早晚出事,我还是习惯 git status,然后挨个 git add,起码心里有数。
        24
    hgjhgjgjhgjg   302 天前   ♥ 1
    alias grb="git rebase"
    alias gaa="git add -A"
    alias gs="git status"
    alias gm="git commit"

    gaa
    gmm -m "xxx"


    楼主可以自定义一个 gam 试试看。
        25
    des   302 天前 via Android
    不是 command + k,然后选自己要提交的文件和变化么?
        26
    frankkai   302 天前
    git ac
        27
    tomoya92   302 天前 via iPhone
    我更想知道 git 提交怎么不用输入后面的-m
    每次提交都要写一下-m "update"
        28
    imherer   302 天前
    用带图形界面的客户端,比如 SourceTree、Github Desktop 等都可以

    但是建议楼主最好别这样做,不出事还好,出事就麻烦了
        29
    ooops   302 天前
    @tomoya92 写个 alias
        30
    ooops   302 天前
    多用用就没有这些问题了。建议从头到尾看看 Pro Git。有问题看到后面就慢慢懂了。我看了半天问题不知道楼主想干啥。
        31
    gesse   302 天前
    你可能对 git 有什么误解
        32
    frylkrttj   302 天前
    @hash 我想知道能不能通过配置文件解决。alias 是指什么?
        33
    frylkrttj   302 天前
    @ww23xx #19 哈哈
        34
    frylkrttj   302 天前
    @chinvo #20 银行卡都没有没条件上 google。
        35
    frylkrttj   302 天前
    @stephen9357 我刚学 git 需要反复操作 正需要 git add . 编程做项目离我还远。
        36
    frylkrttj   302 天前
    @hgjhgjgjhgjg #24 你这配置是写在那个文件的,gam 又是什么。
        37
    fan123199   302 天前
    git add folder/* && git commit -m "all file in folder updated" && git push 一条龙, 个人开发没问题。
        38
    frylkrttj   302 天前
    @tomoya92 #27 发到 V2EX -m 之后就这里省略了吧
        39
    mingyun   302 天前
    @chinvo 又见这个网站,哈哈
        40
    frienmo   302 天前
    @hgjhgjgjhgjg 握手
    看我的
    ##############Git############
    #alias git='LANG=en_US git'
    alias gl='git log'
    alias gs='git status'
    alias gfp='git fetch -p'
    alias gcm='git checkout master'
    alias gc-='git checkout -'
    alias gcp='git cherry-pick'
    alias gau='git add -u'
    alias gpm='git pull origin master'
    alias gnb='function _gnb { gcm; gpm ; git checkout -b $1 ;echo $1;}; _gnb'
    alias amend='git add -u;git commit --amend --no-edit'
    alias gr='function _gr()
    { re='^[0-9]+$';
    if [[ $1 =~ $re ]] ; then
    git rebase -i HEAD~$1;
    else
    git rebase -i $1;
    fi;};_gr'
    alias gz='git reset HEAD~1'
    alias delete-merged-branches='function _f { git checkout --quiet master && git branch --merged | grep --invert-match '\\*' | xargs -n 1 git branch --delete; git checkout --quiet @{-1}; }; _f'
        41
    ynyounuo   302 天前 via iPhone
    如果你的工作流只是
    git add .
    git commit -m "{some_useless_info}"
    git push

    那你基本就是在浪费时间骗自己在用 git 而已
    建议 rm -rm .git/ 一劳永逸
        42
    ynyounuo   302 天前 via iPhone
    rf*
        43
    SharkIng   301 天前
    初学者这样用倒是可以,我以前也这么用,但是的确像楼上说的问题很多。当你真正做项目后,或者在公司里用的时候就会明白这样不行的。所以刚开始养好习惯比较好,不要怕麻烦。
        44
    frylkrttj   301 天前
    @ynyounuo #41 现在学的能用的只有这三步了,你说说其他应用场景呗。
        45
    frylkrttj   301 天前
    #25 @des 没百度到 git -k 相关的
        46
    Wolther47   301 天前 via iPhone
    @frylkrttj #45 他说的可能是 IDE 里面的快捷键
        47
    Wolther47   301 天前 via iPhone
    我觉的楼上有几位言过了,一开始用 git,还是先以熟悉为目的,反正也不是非常重要的代码,翻车了才能更好的记住(
        48
    hakono   301 天前 via Android   ♥ 1
    嘻嘻,等楼主开发程序后,试着多用几次 git add *就会发现,咦,这次把一堆不在 ignore 名单里的临时文件提交了。
    下次:卧槽把刚刚创建的带服务器帐号密码的配置文件一并提交 push 到 github 了。
    然后楼主开始想着怎么回滚,怎么操作远程仓库,然后学会了
    git push --force
    然后把推送的坑也踩了一遍 233
        49
    james2013   301 天前   ♥ 1
    直接用图形化工具 TortoiseGit.
    丰富的功能,直接用鼠标点击就可以了.
    1 个命令也不需要输入.
        50
    dajj   301 天前
    脚本。。。
        51
    des   301 天前 via Android
    @hakono
    多添加了的 reset 回来就好了,文件多的话我也这样,不过不是 add . 而是 add path
    开始不熟,踩几次坑就会长记性了
        52
    hakono   301 天前 via Android
    @des
    主要很无脑 add 的话,多时候都是 add commit push 三件套
    然后回过头就才发现远程仓库已经塞入了多余的文件,
    这时候操作远程对新手就是个大坑了,然后这时候通过各方百度,很大几率会学会 git rest --hard 和 git push --force 这两个命令。
        53
    ElfenSterben   301 天前
    你把 gitignore 配置好然后 git add . 有什么问题么?
        54
    flyingghost   301 天前
    新手学习过程中看不到风险很正常。提出优化建议起码证明 lz 进一步思考了。

    但 git 不这样设计不是因为 git 蠢,而是因为这样设计是错的:误提交实在是太多太多了。。。

    亲身经历过同事误把 密钥.java.bak 提交进仓库,打包,发布,被竞争对手反编译,获取到公司通用算法和我部门密钥,暗搓搓上线我司在线服务的破解版,然后全部门在过年前一天飞机火车汽车逆流回司加班的壮丽事件。
    日常岁月静好的代码仓库,也时不时会出现不应当提交的文件。所以需要 code review,需要服务端 commit 钩子,需要定期检查清理。

    单就文件的尺度来说,git/svn 是允许你整体提交的,也就是说你无需手动一个个变更点看过来,一把梭提交整个文件。是不是和“提交整个目录”很像?所以 git 不是没想到,而是在方便和危险之间找到了平衡:文件粒度。
    但我要求的最佳实践,依然是提交的时候检查精确到行,每个变更都确认需要提交。(你看我没有要求精确到字符已经很人性化很方便啦!)
        55
    liu19931020   301 天前
    vscode+1
        56
    frylkrttj   301 天前
    @hakono #47 哈哈
    @ElfenSterben #53 似乎看穿了我下一步准备干什么
    @flyingghost #54 感谢掏心窝的回复
        57
    xxgirl2   301 天前
    先 status,然后 diff,检查文件、格式、修改无误后,再 add。
        58
    omph   301 天前
    自己写个驻留程序 daemon,监控目录中文件变动,自动添加即可。当然最好支持过滤功能
        59
    libook   301 天前
    用 Git 养成好习惯是头等重要的,用时的一点点麻烦,是为了避免解决问题时的恶心。

    “自动跟踪”坑很多,比如提交了并不想提交的文件(临时测试修改的代码等),以后用用就知道还是老老实实 diff 再 add 最稳妥,版本控制工具使用来可靠控制代码版本的,不应该是累赘,觉得用起来很麻烦真不如不用。

    团队合作使用 git commit -a 和 git push --force 等指令,会被人打死。
        60
    omph   301 天前
    和通知功能
        61
    karllynn   301 天前
    这种简单问题,你读一下 git 文档不就行了么。。。
        62
    xio   301 天前
    ```bash
    function gitall() {
    git add . -A
    if [ -n "$1" ]; then
    git commit -m "$1"
    else
    git commit -m "update"
    fi
    git push
    }

    alias gacp="gitall"
    ```
        63
    weixiangzhe   301 天前
    我一般快速提交是这样的
    gaa && gc -m 'msg'
        64
    gaby2018   301 天前
    楼主应该是 svn 用多了,git 区别还是挺大
        65
    halk   301 天前
    git add -u
        66
    msg7086   301 天前
    顺路说一句,学 Git (项目管理)和学 Git (命令行)是两回事。
    你说你学 Git,可以先想想你要学其中的哪一个,还是两个都要。
    我还是建议找个好点的 GUI。
        67
    msg7086   301 天前
    @libook 不过我司是频繁使用 git push --force 的。
        68
    guanhui07   300 天前
    git add .
        69
    kaiser1992   300 天前
    git add -A
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1030 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 19:18 · PVG 03:18 · LAX 11:18 · JFK 14:18
    ♥ Do have faith in what you're doing.